我将活动转换为片段时如何修复onOptionsItemSelected

时间:2019-04-22 03:47:43

标签: android

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

当该片段返回到上一个活动以及返回到上一个片段时,我应该对此片段做些什么更改?

@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);
    }
}

1 个答案:

答案 0 :(得分:0)

尝试这样

在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);
    }
}

可能会有所帮助。如果这还是行不通的,那么您必须在调用片段的位置管理活动中的片段回栈