Hello guys I have Fragment activity which shows Google map and I want to send latitude and longitude values to one of my activities. But how can I do this except putExtra. I can't use putExtra because I can't startActivity after data are complete. I have BottomNavigation activity which shows map fragment and also Settings activity in another fragment too. And I want to collect data from Map fragment and use it in this second fragment. Thanks.
            Asked
            
        
        
            Active
            
        
            Viewed 305 times
        
    -3
            
            
        - 
                    1Possible duplicate of [Passing Data Between Fragments to Activity](https://stackoverflow.com/questions/14439941/passing-data-between-fragments-to-activity) – Bö macht Blau Aug 14 '17 at 16:58
- 
                    Reis questiona nas been answered here: https://stackoverflow.com/a/21044305/4305317 – Gláucio Leonardo Sant'ana Aug 14 '17 at 17:06
2 Answers
1
            
            
        You can use Shared Preference to do that.
Example:
Put value inside Shared Preference in your fragment activity.
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putDouble("latitude", latitude);
editor.putDouble("longitude", longitude);
editor.apply();
get value from Shared Preference in your second activity.
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
double latitude = sharedPref.getDouble("latitude");
double longitude = sharedPref.getDouble("longitude");
Hope it helps:)
 
    
    
        Bhuvanesh BS
        
- 13,474
- 12
- 40
- 66
- 
                    How can this solve my problem, please? I don't want to set values in my second activity. I want to send values from Map fragment activity to my second activity. – Asaf Aug 14 '17 at 17:24
- 
                    Thanks, I also had this idea but do you think it is a good solution for let's say 20 latitudes and longitudes? Thanks. – Asaf Aug 14 '17 at 17:57
- 
                    
- 
                    I download data(latitude and longitude) from Firebase database and then send it to another activity when needed – Asaf Aug 14 '17 at 18:17
- 
                    Yeah you can store it temporarily in Singleton object and use it in another activity – Bhuvanesh BS Aug 14 '17 at 18:26
0
            
            
        You can do this:
public class MyFragment extends Fragment{
    private MyActivity myActivity = null;
    public void setActivity(MyActivity myActivity){
        this.myActivity = myActivity;
    }
    //Call this method when you want to pass the values to the activity
    private void passLatLong(String lat, String longt){
        if(myActivity!=null){
            myActivity.setLatLong(lat,longt);
        }
    }
}
And in your Activity:
public class MyActivity extends AppCompatActivity{
    @Override
    protected void onCreate(Bundle savedInstanceState) {
         //MyFragment myFragment = ... Define your fragment instance
         myFragment.setActivity(this);
    }
    public void setLatLong(String lat, String  longt){
         //Fragment will call this method
    }
}
 
    
    
        Rodrigo João Bertotti
        
- 5,179
- 2
- 23
- 34
