android - 将活动转换为片段时如何修复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);
}
}
解决方案
像这样试试
写在 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);
}
}
它可能会有所帮助。如果这也不起作用,那么您必须从调用片段的位置管理活动中的片段回栈
推荐阅读
- html - Angular 可以输出有效的 HTML 文档吗?
- c++ - Fstream在读取文件时给出空行,与pthreads一起使用
- python - 如何检查我的代码是否在 SLURM 环境中运行?
- c++ - 在 CreateConstantBufferView 处超出虚拟地址的末尾
- linux - 如何更新我的 libthread_db 共享库以匹配 libpthread 共享库?
- javascript - React Webpack 无效的选项对象。CSS Loader 已使用选项对象初始化
- c# - 实体框架 6 中的更新数据库命令不起作用
- javascript - JavaScript 生成器及其原型链
- android - ViewModel 正在为 recyclerview 复制项目
- mysql - 按客户选择,他最近的订单中最贵的产品名称