Java Android-如何显示Backback片段

Java Android-如何显示Backback片段,java,android,android-fragments,Java,Android,Android Fragments,当点击btn时,将显示片段1,当我按下btn2时,将显示片段2,我相信片段1已放置在后台。第二次,当我点击btn时,我想显示它以前的状态。我将包括使我非常困惑的代码,我不知道如何做到这一点 btn.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { String str = "frag1"; Fragment videoFragment = new VideoPlayerFragment();

当点击
btn
时,将显示片段1,当我按下
btn2
时,将显示片段2,我相信片段1已放置在后台。第二次,当我点击btn时,我想显示它以前的状态。我将包括使我非常困惑的代码,我不知道如何做到这一点

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);

要显示上一个片段(backStack中的片段),请使用以下代码:

getSupportFragmentManager().executePendingTransaction();

我认为以下方法可以满足您的要求

1.创建一个片段管理器来保存这两个片段的引用

2.每次单击按钮时,删除旧按钮,添加新按钮

代码

     FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
     ft.remove(fragment1);
     ft.add(fragment2);

谢谢你的回复。您能否指导我或提供额外的代码来检查片段1是否处于什么状态,是否需要显示backtack。我不知道如何使用上面的代码,先生。您可以在片段的onSaveBundleInstances(Bundle inBundle)中控制,并且在相同片段的onCreate(Bundle OutHandle)中会得到相同的Bundle。因此,当您第二次单击btn时,您想再次显示Fragment1,对吗,所以我想检查这是否是第二次点击btn,如果是,那么获取它的保存状态并再次显示它,将片段2放在backbackback中。但是,我也不知道如何得到上一个回溯。我的回溯条目有错误。如果您想将
Fragment2
也保留在backstack中,您必须再次添加
Fragment1
,以便
Fragment2
可以添加到backstack中。对不起,我的意思是,将片段2放在backstack中并显示片段1的保存状态