如何在android中添加backbutton

如何在android中添加backbutton,android,android-actionbar,fragment,Android,Android Actionbar,Fragment,我在这里制作了一个聊天应用程序,我有很多片段,但我只使用了一个活动。在我的应用程序导航抽屉中也有,所以我的问题是我从第一个片段到第二个片段,在第二个片段中,我使用actionbar homeupenabled显示backbutton,但当我按下backbutton时,OnOptions MenuSelected没有执行任何操作。当我通过drawerindicator false进入第二个片段时,我正在删除drawer toggle。我已尝试了所有方法,请帮助我 代码: 你可以用 getActiv

我在这里制作了一个聊天应用程序,我有很多片段,但我只使用了一个活动。在我的应用程序导航抽屉中也有,所以我的问题是我从第一个片段到第二个片段,在第二个片段中,我使用actionbar homeupenabled显示backbutton,但当我按下backbutton时,OnOptions MenuSelected没有执行任何操作。当我通过drawerindicator false进入第二个片段时,我正在删除drawer toggle。我已尝试了所有方法,请帮助我

代码:

你可以用

getActivity().onBackPressed()

对于相同的活动,您只能在同一时间做同一件事

1)Open drawer event or
2)Back Button
因为其他的都是碎片

若你们想在反压事件中做一些事情,那个么你们可以使用重写方法

public void onBackPressed()

在你的活动中

当你创建第二个片段时,你是否将其从第一个片段中放置到后台?我遇到的正是你描述的问题。在阅读您的代码时,我意识到我在第二个片段中没有对选择的选项项进行覆盖,但在第二个片段中已经调用了设置选项菜单(true)和设置显示HomeAsupEnabled(true)。因此,只要我将
onOptionsItemSelected
包括在内。我能够回到第一个片段。我甚至只是把你的家庭案例代码粘贴到我的第二个片段中,在第一个片段中得到了“有效”的祝酒词

我唯一的另一个区别是,我没有在CreateView上包含一个覆盖公共视图的
@
。但原因不同。因此,我的
SetHasOptions菜单(true)
setDisplayHomeAsUpEnabled(true)
在创建的活动中被调用,我的第一个片段是活动在创建时在其容器中膨胀的主片段

从第一个片段调用第二个片段,就像在
onlistItemClick中那样

Bundle args = new Bundle();
        args.putSerializable("SELECTED_TAG", dataList);

        SecondFragment toFragment = new SecondFragment();
        toFragment.setArguments(args);
        //show more about the exercise
        //TODO:start an indent to launch new activity
        FragmentManager fm = getFragmentManager();
        FragmentTransaction transaction = fm.beginTransaction();
        transaction.setCustomAnimations(R.anim.slidein, R.anim.slideout);
        transaction.addToBackStack(null).replace(R.id.container, toFragment, SECOND_FRAGMENT_TAG)
                .commit();

然后,第二个片段在ONOPTIONEMSELECTED中“返回”,与您的操作完全相同

我在活动中按下片段时没有收到吐司我通过设置FALSE移除抽屉指示器我可以查看您的活动类吗?
Bundle args = new Bundle();
        args.putSerializable("SELECTED_TAG", dataList);

        SecondFragment toFragment = new SecondFragment();
        toFragment.setArguments(args);
        //show more about the exercise
        //TODO:start an indent to launch new activity
        FragmentManager fm = getFragmentManager();
        FragmentTransaction transaction = fm.beginTransaction();
        transaction.setCustomAnimations(R.anim.slidein, R.anim.slideout);
        transaction.addToBackStack(null).replace(R.id.container, toFragment, SECOND_FRAGMENT_TAG)
                .commit();