当我按下操作栏的后退按钮时,我的片段的onOptionsItemSelected方法从未调用过。当我按下按钮时,我想转到上一个片段,但这个方法从未调用过。这是片段的代码,它可能是什么问题?
public class MyFragment extends Fragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
((ActionBarActivity)getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(true);
((ActionBarActivity)getActivity()).getSupportActionBar().setDisplayShowHomeEnabled(true);
setHasOptionsMenu(true);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Get item selected and deal with it
switch (item.getItemId()) {
case android.R.id.home:
//called when the up affordance/carat in actionbar is pressed
getActivity().onBackPressed();
return true;
}
return false;
}
提前致谢。
答案 0 :(得分:-1)
首先,这将在基本活动中收到而不是片段。
将您之前的片段添加到后面的堆栈。
并从此片段弹出窗口
如果(ID == android.R.id.home) { getSupportFragmentManager()popBackStack(); }
要检查它被称为哪个片段,请使用:
if(片段instanceof MyFragment)
你完成了!!