Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/215.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从片段到上一个主片段的后退按钮箭头_Java_Android_Android Fragments - Fatal编程技术网

Java 从片段到上一个主片段的后退按钮箭头

Java 从片段到上一个主片段的后退按钮箭头,java,android,android-fragments,Java,Android,Android Fragments,我有5个片段,每个片段在右上角有三个点,允许用户转到另一个子片段。当用户输入该片段时,我希望允许他们返回到使用右角的返回按钮箭头之前的片段。我知道如果我有活动而不是片段,我可以在Android清单中完成。我不知道是否可以在back arrow按钮上调用onClick()方法,因为我是通过代码创建的,所以它没有id来选择它 要从片段中启用对home/up按钮的访问,您需要覆盖并检查android.R.ID.home @Override public boolean onOptionsItemSe

我有5个片段,每个片段在右上角有三个点,允许用户转到另一个子片段。当用户输入该片段时,我希望允许他们返回到使用右角的返回按钮箭头之前的片段。我知道如果我有活动而不是片段,我可以在Android清单中完成。我不知道是否可以在back arrow按钮上调用onClick()方法,因为我是通过代码创建的,所以它没有id来选择它


要从片段中启用对home/up按钮的访问,您需要覆盖并检查
android.R.ID.home

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {

        case android.R.id.home:

            // Do whatever you want here on home/up button click

            // Replacing a fragment
            FragmentTransaction fragmentTransaction = getActivity().getSupportFragmentManager().beginTransaction();
            Fragment1 fragment1 = new Fragment1();
            fragmentTransaction.addToBackStack("xyz");
            fragmentTransaction.hide(MyCurrentFragment.this);
            fragmentTransaction.add(android.R.id.content, fragment1);
            fragmentTransaction.commit();


            return true;
    }

    return super.onOptionsItemSelected(item);
}

当按下home/back按钮时,您需要覆盖选项ItemSelected以定义所需的操作clicked@Zain好的,我想我需要一个开关(item.getItemId()),如果选择back按钮,但我不知道如何证明这一点,因为我在代码中创建了后退箭头按钮,正如我所展示的。请检查我的回答。我不明白我需要用R.id.android.R.id.home做什么,因为“android”部分给了我语法error@SvatsQ12对不起,这是打字错误。。您现在可以检查它
android.R.id.home
@SvatsQ12是的,您仍然需要在按下home按钮时添加所需的逻辑。。只需替换上面注释掉的行,我将其替换为FragmentHelper.getInstance().switchFragments(新的Fragment1(),这是);这就是我的转换方法fragments@SvatsQ12这个方法对你有用吗。。您没有提供
FragmehtHelper
@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {

        case android.R.id.home:

            // Do whatever you want here on home/up button click

            // Replacing a fragment
            FragmentTransaction fragmentTransaction = getActivity().getSupportFragmentManager().beginTransaction();
            Fragment1 fragment1 = new Fragment1();
            fragmentTransaction.addToBackStack("xyz");
            fragmentTransaction.hide(MyCurrentFragment.this);
            fragmentTransaction.add(android.R.id.content, fragment1);
            fragmentTransaction.commit();


            return true;
    }

    return super.onOptionsItemSelected(item);
}