在我的主要活动中,我有一个菜单,当选择菜单选项时,会创建一个Intent并启动一个新活动。当该活动完成时,该过程应根据ActivityLifeCycle返回主活动及其所有先前状态。
我注意到当它返回主活动时,什么都无法访问,屏幕变暗。当我按下菜单软键时,我只能回到我的期望。
之前有没有人遇到过这个问题?反馈将不胜感激! 代码示例如下:
@Override
protected void onResume(){
super.onResume();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main_menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle item selection
switch (item.getItemId()) {
case R.id.menu_settings:
return true;
case R.id.menu_decks:
Intent launchDecks = new Intent(this, stackDecks.class);
startActivity(launchDecks);
return true;
case R.id.menu_exit:
this.onDestroy();
this.finish();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
答案 0 :(得分:2)
第一篇文章中的代码实际上是正确的(我有一些非常相似的东西)。即使在没有任何问题的情况下膨胀,也很可能错误出现在menu.xml res文件中。检查两个地方是否完全一致,并且具有相同的项目。经过几个小时的实验,我终于解决了它。
答案 1 :(得分:0)
你似乎对super的使用感到困惑。
super.m()用于调用超类方法。
如果你继承没有覆盖的方法那么 super.m()= this.m() 看你的super.onDestroy
覆盖方法m()只是为了调用super.m()是绝对无用的 查看你的onResume
有时调用super clas方法很有用,它允许您从子类中的此代码中受益。例如,onCreateMenuOptions被覆盖,您的子类可以从菜单的一些模仿代码中受益。
此致 斯特凡