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