0

我得到了下一个 FragmentActivity。这个 FragmentActivity 使用 LinearLayout(定义一些按钮以调用其他 Fragment 的菜单)和 FrameLayout(根据我选择的按钮加载其他 Fragment 的黑色空间)扩展布局。

public class MenuViewActivity extends FragmentActivity {
....

我使用 onClickListener 加载选定的片段:

protected void onCreate(Bundle savedInstanceState) {
....

final OnClickListener fragment_1 = new OnClickListener() {
    @Override
    public void onClick(View v) {

        fragment_1 Fragment = new fragment_1();
        FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
        transaction.replace(R.id.fragment_container, Fragment);
        transaction.addToBackStack(null);
        transaction.commit();
    }
};

我这样做了大约 5 个按钮。此菜单还包含一个自定义返回键。这个后退按钮的功能应该是这样的:

[fragment_1][fragmen_2][fragment_3][fragment_4][fragment_5]

该应用程序开始始终显示 fragment_1。我从 fragment_1 转到任何其他片段。例如,我可以从 [fragment_1] 转到 [fragment_4]。按下后退键时,我应该回到 [fragment_1]。

要详细说明功能,我可以这样做:[fragment_1]->[fragment_2]->[fragment_3],当按下返回时,应该返回到 [fragment_1]。

我有一个用于返回键的 onClickListener,但我不知道如何实现此功能。

4

2 回答 2

0

你在找这个

getSupportFragmentManager().popBackStack();

另外,如果您不知道这是实际 android 后退按钮的默认功能,那么除非您覆盖它,否则它会做同样的事情。

于 2013-11-07T15:28:22.660 回答
0

你只需要从你的后台弹出所有片段,除非你到达你想要的那个。使用 FragmentManager 的popBackStack()可能是最简单的:

public abstract void popBackStack (int id, int flags)

将所有返回堆栈状态弹出到具有给定标识符的状态

于 2013-11-07T15:28:34.597 回答