如何在android中导航抽屉中为后退图标设置操作?

时间:2015-11-25 08:41:24

标签: android android-fragments

我是Android的新手,当我使用材料设计制作应用程序时,我遇到了问题。我按照this教程创建了一个片段,允许在此图片enter image description here中搜索门票。 单击搜索按钮后,将显示片段结果,例如此enter image description here

但我不知道如何为工具栏中的后退图标设置操作以支持上一个片段。当我绘制图标时,它总是显示导航抽屉,当我触摸我的设备上的图标时,我只能返回上一个片段,但是当我这样做时,工具栏的标题不会改变。例如,当我处于片段重新组合时,如果我点击设备,我将返回搜索片段,但工具栏的tittle是结果的标题。请帮我。 p / s:很抱歉,如果这个问题很愚蠢,但我坚持了三天。我也搜索谷歌和stackoverflow,但也许我不完全了解导航抽屉,所以我尝试但无法解决。如果我错误的语法,我也很抱歉,因为我的英语不好,感谢你阅读我的问题 这是我的代码将fragement搜索票替换为Result。

 public  void DataBundle(ArrayList<TicketInforModel> ticketInforModels){
        ResultFragment rFrag = new ResultFragment();
        Bundle packageDataStation = new Bundle();
        packageDataStation.putSerializable("arrTicket",ticketInforModels);
;
        rFrag.setArguments(packageDataStation);
        //noinspection ResourceType
        FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
        FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
        fragmentTransaction.replace(R.id.container_body, rFrag);
        fragmentTransaction.addToBackStack(null);
        fragmentTransaction.commit();

        // set the toolbar title
        Toolbar toolbar = (Toolbar) getActivity().findViewById(R.id.toolbar);//get Toolbar from SearchingTicketActivity
        ((SearchingTicketActivity)getActivity()).setSupportActionBar(toolbar);
        ((SearchingTicketActivity)getActivity()).getSupportActionBar().setTitle(R.string.title_result);

       toolbar.setNavigationIcon(R.drawable.ic_back);

       // toolbar.dismissPopupMenus();
    }

2 个答案:

答案 0 :(得分:1)

像往常一样在android.R.id.home上收听点击事件:

 @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            // Respond to the action bar's Up/Home button
            case android.R.id.home:
            //Do your stuff
            break;
        }
        return super.onOptionsItemSelected(item);
    }

注意:在这种情况下,最好在按下搜索按钮时在新的Activity中显示结果,然后您可以在finish()结果活动后返回按home/up中的toolbar按钮。不要让它变得那么复杂。

答案 1 :(得分:0)

试试这个

toolbar.setNavigationOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
           getSupportFragmentManager.popBackStackImmediate();
        }
    });