2015-12-19 100 views
0

如何从一个fragment返回到之前的ActionBarActivity单击Navigartion Bar后退按钮?如何从一个片段返回到上一个ActionBarActivity

是否有任何方法可以重写?片段中不能使用onBackPressed()方法。

+0

您是否想从您的片段活动中返回另一个活动来保存当前片段? –

+0

试试我的答案... –

回答

0

您可以通过覆盖做到这一点OnBackPressed()

public void onBackPressed() 
{ 
FragmentManager fm = getActivity().getSupportFragmentManager(); 
fm.popBackStack(); 
} 

片段是添加在堆栈中,当你popbackStack()它去以前的片段堆栈

+0

你不能重写片段中的onBackPressed事件。 –

+0

它无法覆盖片段内的onBackPressed()所以我想要一些替代 –

0

刚刚从Activity。它删除onBackPressed()将起作用。

第二件事

您必须添加Fragment1在堆栈中,如果你想回到Fragment1当你更换ListFragent

FragmentManager fragmentManager = getFragmentManager(); 
fragmentTransaction fragmentTransaction =fragmentManager.beginTransaction(); 
fragmentTransaction.replace(R.id.container, 
       FragmentObj); 
fragmentTransaction.addToBackStack(null).commit(); 
+0

我没有使用onBackPressed()里面的活动类 –

+0

@nawinkhatiwada请参阅编辑 –

+0

我在哪里使用此代码?在片段类里面? –

0

尝试使用这样的:

getView().setOnKeyListener(new View.OnKeyListener() { 
     @Override 
     public boolean onKey(View v, int keyCode, KeyEvent event) { 

      if (event.getAction() == KeyEvent.ACTION_UP && keyCode == KeyEvent.KEYCODE_BACK) { 

       // handle back button 
       //add the functionality here 

      } 

      return false; 
     } 
    }); 

实施它在你的onResume函数中。

它应该完美地工作。

相关问题