操作栏上按下后退按钮时未调用onOptionsItemSelected - Android

时间:2015-06-16 11:30:41

标签: android android-fragments android-actionbar navigation-drawer

当我按下操作栏的后退按钮时,我的片段的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;
}

提前致谢。

1 个答案:

答案 0 :(得分:-1)

首先,这将在基本活动中收到而不是片段。
将您之前的片段添加到后面的堆栈。
并从此片段弹出窗口

  

如果(ID == android.R.id.home)           {               getSupportFragmentManager()popBackStack();           }

要检查它被称为哪个片段,请使用:
if(片段instanceof MyFragment)
你完成了!!