Как перезаписать данные saveInstaceState к фрагменту из FragmentActivity?
У меня есть ValueView extends LinearLayout
для отображения двух значений в TextView. Для простоты я удалил все TextViews, которые работают до сих пор..
public class ValueView extends LinearLayout {
private int value1;
private int value2;
public ValueView(Context context) {
super(context);
init(context);
}
private void init(Context context) {
View.inflate(context, R.layout.view_values, this);
//..
value1 = 1;
value2 = 0;
displayValues(value1, value2);
}
public static class MyBottomSheetDialogContainerActivity extends FragmentActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
MyBottomSheetDialogFragment bsd = new MyBottomSheetDialogFragment();
bsd.show(getSupportFragmentManager(), bsd.getTag());
}
}
}
Тогда у меня также есть MyBottomSheetDialogFragment, как:
public class MyBottomSheetDialogFragment extends BottomSheetDialogFragment {
private int value1 = 1;
private int value2 = 0;
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_my_bottomsheet, container, false);
if (savedInstanceState != null)
{
value1 = savedInstanceState.getInt("VAL1");
value2 = savedInstanceState.getInt("VAL2");
}
// super.onCreateView(inflater, container, savedInstanceState);
return view;
}
@Override
public void onSaveInstanceState(Bundle outState) {
outState.putInt("VAL1", value1);
outState.putInt("VAL2", value2);
super.onSaveInstanceState(outState);
}
@Override
public void onDestroyView() {
super.onDestroyView();
value1 = 1;
value2 = 0;
getActivity().finish();
}
}
Это работает пока отлично. Единственное, я хочу запомнить значения1 и значение2, когда я снова вызываю MybottomSheetdialogFragment.
Я хотел бы решить это с saveInstanceState, но каждый раз MyBottomSheetDialogFragment
входит в onCreateView()
метод savedStateInstance
является null
,
- Я не хочу сохранять значения в дополнительных SharedPrefs!
- Добавление + id к макету не помогает, все же
null
- Я реализовал
onSaveInstanceState
метод, но нетonRestoreInstanceState
метод в моемMyBottomSheetDialogFragment
, Похожий метод, который я нашел:onViewStateRestored(@Nullable Bundle savedInstanceState)
savedInstanceState
это такжеnull
вMyBottomSheetDialogContainerActivity::onCreate()