大家好我有Fragment活动,显示谷歌地图,我想将纬度和经度值发送到我的一个活动。但除了putExtra之外我怎么能这样做呢。我不能使用putExtra,因为在数据完成后我无法启动startActivity。我有BottomNavigation活动,它也显示了另一个片段中的地图片段和设置活动。我想从Map片段中收集数据并在第二个片段中使用它。感谢。
答案 0 :(得分:1)
您可以使用共享首选项来执行此操作。
示例:强>
将值放在片段活动中的共享首选项中。
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putDouble("latitude", latitude);
editor.putDouble("longitude", longitude);
editor.apply();
从第二个活动中的共享偏好中获取值。
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
double latitude = sharedPref.getDouble("latitude");
double longitude = sharedPref.getDouble("longitude");
希望有所帮助:)
答案 1 :(得分:0)
你可以这样做:
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);
}
}
}
在你的活动中:
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
}
}