1

In my main activity I have a menu and when a menu option is selected an Intent is created and a new activity is started. 当该活动完成时,该流程应根据 ​​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);
    }
}   
4

2 回答 2

2

第一篇文章中的代码实际上是正确的(我有非常相似的东西)。错误很可能出现在 menu.xml res 文件中,即使它在没有任何问题的情况下膨胀。检查它在两个地方是否完全一致,并且具有相同的项目。经过数小时的实验,我终于解决了它。

于 2011-12-10T09:10:44.610 回答
0

您似乎对 super 的使用感到困惑。

super.m() 用于调用超类方法。

如果你继承了没有覆盖的方法,那么 super.m() = this.m() 查看你的 super.onDestroy

重写方法 m() 只是为了调用 super.m() 绝对没用,请参阅您的 onResume

有时调用 super clas 方法很有用,它允许您从子类中的代码中受益。例如,这里的 onCreateMenuOptions 被覆盖,您的子类可以从菜单的一些简化代码中受益。

问候, 斯蒂芬

于 2011-08-29T02:22:49.157 回答