Мне нужно передать данные от activity
до fragment
.
Я попробовал установить setArguments()
, broadcast receiver
и я не знаю, где я делаю ошибку
совет 1: в MainActivity
setArguments()
bundle
полно вещей, но когда я звоню getArguments()
, там пусто, почему?
РЕДАКТИРОВАТЬ: я просто забыл загрузить его в MainActivity после сохранения intance
MainActivity
:
@Override
protected void onSaveInstanceState(Bundle outState) {
Bundle gameData = getIntent().getExtras();
float current_zoom =(gameData.getFloat("current_zoom"));
LatLng current_target =((LatLng)gameData.getParcelable("current_target"));
float current_bearing =(gameData.getFloat("current_bearing"));
String current_map_mode = (gameData.getString("current_map_mode"));
Bundle dataActivityBundle = new Bundle();
dataActivityBundle.putFloat("current_zoom",current_zoom);
dataActivityBundle.putParcelable("current_target",current_target);
dataActivityBundle.putFloat("current_bearing",current_bearing);
dataActivityBundle.putString("current_map_mode",current_map_mode);
MapFragment myObj = new MapFragment();
myObj.setArguments(dataActivityBundle);
Log.i("Rotate","Arguments : "+String.valueOf(mapFragment.getArguments()));
super.onSaveInstanceState(outState);
}
MapFragment
:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// Inflate the layout for this fragment
View v = inflater.inflate(R.layout.fragment_map, container, false);
mapFragment = (SupportMapFragment)getChildFragmentManager().findFragmentById(R.id.map);
if(mapFragment==null){
FragmentManager fm = getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
mapFragment = SupportMapFragment.newInstance();
ft.replace(R.id.map,mapFragment).commit();
}
mapFragment.getMapAsync(this);
if (getArguments() != null) {
current_zoom = getArguments().getFloat("current_zoom");
current_target = getArguments().getParcelable("current_target");
current_bearing = getArguments().getFloat("current_bearing");
current_map_mode = getArguments().getString("current_map_mode");
Log.i("Rotate","onCreateView : getArguments() != null");
Log.i("Rotate","current_zoom "+getArguments().getFloat("current_zoom"));
Log.i("Rotate","current_target "+getArguments().getParcelable("current_target"));
Log.i("Rotate","current_bearing "+getArguments().getFloat("current_bearing"));
Log.i("Rotate","current_map_mode "+getArguments().getString("current_map_mode"));
}
}