Когда будет нажата btn
Фрагмент 1, когда я нажму btn2
Фрагмент 2 будет отображаться, и я считаю, что фрагмент 1 помещен в заднюю часть. Во второй раз, когда я нажал на btn
, мне захотелось отобразить его предыдущее состояние. Я включу код, который очень смутил меня, и я не уверен, как это сделать.Android - Как отобразить Фрагмент Backstack
btn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
String str = "frag1";
Fragment videoFragment = new VideoPlayerFragment();
FragmentTransaction transaction = getChildFragmentManager().beginTransaction();
transaction.replace(R.id.child_fragment, videoFragment, str);
transaction.addToBackStack(null);
transaction.commit();
}
});
btn2.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
String str2 ="frag1";
String str3 ="frag2";
//FragmentManager.BackStackEntry backEntry=
//getFragmentManager().getBackStackEntryAt(getActivity().getFragmentManager().
//getBackStackEntryCount()-1);
//String str3 = backEntry.getName();
//Fragment fragment= getFragmentManager().findFragmentByTag(str3);
Fragment videoFragment = new CopyOfVideoPlayerFragment();
FragmentTransaction transaction2 = getFragmentManager().beginTransaction();
transaction2.addToBackStack(str2);
transaction2.replace(R.id.child_fragment, videoFragment, str3);
transaction2.commit();
}
});
некорректный код и не работает:
FragmentManager.BackStackEntry backEntry=getFragmentManager().getBackStackEntryAt(getActivity().getFragmentManager().getBackStackEntryCount()-1);
String str3 = backEntry.getName();
Fragment fragment= getFragmentManager().findFragmentByTag(str3);
Так второй раз, когда вы нажали БТН, вы хотите отобразить Fragment1 снова правильно? – hardartcore
Да, поэтому я хотел проверить, является ли это второй раз, когда btn нажата, если да, то получите его сохраненное состояние и снова отобразите его, добавив фрагмент 2 в backstack. Но также, я понятия не имею, чтобы получить предыдущую заднюю часть. с ошибками с моей backEntry. – rahstame
Если вы хотите сохранить 'Fragment2' в backstack тоже, вам нужно добавить' Fragment1', так что «Fragment2» можно добавить в backstack. – hardartcore