首页 > 解决方案 > 将活动转换为片段时如何修复onOptionsItemSelected

问题描述

我正在将一些活动转换为几个片段,现在当我按下后退按钮时它不起作用。

当它返回上一个活动和返回上一个片段时,我应该在这个片段中做哪些更改?

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case R.id.returnHome:

            Intent i= new Intent(getActivity().getApplicationContext(), WoundNavigation.class);
            i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP| Intent.FLAG_ACTIVITY_SINGLE_TOP);
            startActivity(i);
            return true;
        case android.R.id.home:
            getActivity().onBackPressed();
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }
}

标签: android

解决方案


像这样试试

写在 onCreateView() 方法中

setHasOptionsMenu(true)

并做出这些改变

 @Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case R.id.returnHome:

            Intent i= new Intent(getActivity(), WoundNavigation.class);
            i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP| Intent.FLAG_ACTIVITY_SINGLE_TOP);
            startActivity(i);
            return true;
        case android.R.id.home:
            getActivity().onBackPressed();
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }
}

它可能会有所帮助。如果这也不起作用,那么您必须从调用片段的位置管理活动中的片段回栈


推荐阅读