Android将值从片段发送到活动
大家好,我有一个显示谷歌地图的片段活动,我想把纬度和经度值发送到我的一个活动中。但我怎么能做到这一点,除了额外的。我不能使用putExtra,因为我不能在数据完成后启动Tactivity。我有一个底部导航活动,它显示地图片段,也在另一个片段中设置活动。我想从Map片段中收集数据,并在第二个片段中使用它。谢谢。您可以使用共享首选项来完成此操作 示例: 将值放入片段活动中的共享首选项中Android将值从片段发送到活动,android,google-maps,android-fragments,Android,Google Maps,Android Fragments,大家好,我有一个显示谷歌地图的片段活动,我想把纬度和经度值发送到我的一个活动中。但我怎么能做到这一点,除了额外的。我不能使用putExtra,因为我不能在数据完成后启动Tactivity。我有一个底部导航活动,它显示地图片段,也在另一个片段中设置活动。我想从Map片段中收集数据,并在第二个片段中使用它。谢谢。您可以使用共享首选项来完成此操作 示例: 将值放入片段活动中的共享首选项中 SharedPreferences sharedPref = getActivity().getPreferenc
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");
从您的第二个活动中的共享首选项中获取价值
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");
希望有帮助:)您可以这样做:
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
}
}
这里回答了可能重复的Reis问题A:请问这如何解决我的问题?我不想在第二个活动中设置值。我想将地图碎片活动的值发送到我的第二个活动。谢谢,我也有这个想法,但你认为这是一个很好的解决方案,比如说20个纬度和经度?谢谢。你不制作一个单例来存档吗?我从Firebase数据库下载数据(纬度和经度),然后在需要时将其发送到另一个活动。是的,你可以将其临时存储在单例对象中,并在另一个活动中使用