如何拦截片段调用到MainActivity中的popBackStack()?

问题描述:

在我的应用程序中,当用户单击列表项时,我正在转换到DetailsFragment。并且有两个选项可以返回主Fragment(列表Fragment)。如何拦截片段调用到MainActivity中的popBackStack()?

  • 按下后退按钮。 (这里没问题,因为我在的处理这个)
  • Toolbar回箭头(这是我的问题)。

当用户按下工具栏上后退箭头,我拨打以下

getActivity().getSupportFragmentManager().popBackStack(); 

我怎么能拦截MainActivity这个活动? (有一些操作,我在做MainActivity当列表Fragment是对用户可见。

+0

要求它覆盖'onOptionsItemSelected'方法拦截工具栏的情况下,回你可以找到完整的答案在[如何覆盖在Android操作栏后退按钮?](http://*.com/questions/14437745/how-to-override-action-bar-back-button-in-android ) –

只是把这个代码

toolbar.setNavigationOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      onBackPressed(); 
     } 
    }); 
+0

我在我的DetailsFragment中使用了以下内容 '@Override public boolean onOptionsItemSelected(MenuItem item){ int id = item.getItemId(); if(id == android.R.id.home){ getActivity()。onBackPressed(); } return true; }' – steve111MV

+0

现在没关系,但这只适用于顶部后退箭头 – steve111MV