Java 从PreferenceActivity返回后,屏幕变暗,需要额外按下后退按钮

Java 从PreferenceActivity返回后,屏幕变暗,需要额外按下后退按钮,java,android,Java,Android,我在我的应用程序中添加了一个简单的PreferenceActivity,可以通过上下文菜单按钮访问。我可以很好地访问PreferenceActivity,那里的一切都正常。问题是当您通过后退按钮离开PreferenceActivity时。应用程序的主要活动重新出现,但整个屏幕变暗,就像弹出了一个对话框,或者上下文菜单从未消失,但没有消失。如果不按后退按钮或菜单按钮,则无法与后台的ListActivity交互 有人知道为什么会这样吗 主要活动: @Override public boolean

我在我的应用程序中添加了一个简单的PreferenceActivity,可以通过上下文菜单按钮访问。我可以很好地访问PreferenceActivity,那里的一切都正常。问题是当您通过后退按钮离开PreferenceActivity时。应用程序的主要活动重新出现,但整个屏幕变暗,就像弹出了一个对话框,或者上下文菜单从未消失,但没有消失。如果不按后退按钮或菜单按钮,则无法与后台的ListActivity交互

有人知道为什么会这样吗

主要活动:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    super.onCreateOptionsMenu(menu);
    // get the inflater
    MenuInflater inflater = getMenuInflater();
    // inflate
    inflater.inflate(R.menu.main_menu, menu);
    return true;
}

@Override public boolean onOptionsItemSelected(MenuItem item) { // Handle item selection; switch(item.getItemId()) { case R.id.refresh: refresh(); return true; case R.id.subreddits: startActivity(new Intent(this, Prefs.class)); return true; default: return super.onOptionsItemSelected(item); } }

@凌驾
公共布尔onCreateOptions菜单(菜单){
super.onCreateOptions菜单(菜单);
//去拿充气机
MenuInflater充气机=getMenuInflater();
//膨胀
充气机。充气(右菜单。主菜单,菜单);
返回true;
}

@凌驾 公共布尔值onOptionsItemSelected(菜单项项){ //处理项目选择; 开关(item.getItemId()){ 案例R.id.refresh: 刷新(); 返回true; 案例R.id.subreddits: startActivity(新意图(此,首选类)); 返回true; 违约: 返回super.onOptionsItemSelected(项目); } }

优惠活动:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    addPreferencesFromResource(R.xml.subreddit_preferences);
}

@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.subreddit_preferences);
}

我不会用那种方式编写创建选项菜单()上的
。不要先调用
super
,然后返回
true
,而是将链的结果返回到超类


如果这没有帮助,那么它将使用
首选项活动
,并且不会遇到您提到的问题。看看你是否能推断出你的代码与我的不同之处。

我也有同样的问题,我的问题是我在“设置”菜单项下放了一个子菜单


删除它解决了问题。

Hm。我做了更改(打得好,谢谢),但似乎没有解决问题。@Chris:试试我的示例。一旦您确认它没有显示您遇到的行为,就开始尝试找出我的代码和您的代码的不同之处。有趣的是……所以我尝试像您一样动态添加菜单对象,而不是膨胀xml,这似乎解决了问题。我不介意在运行中添加它们,但我想知道我的xml中是否有错误(我已经将其添加到原始帖子中)。忽略最后的评论。谢谢@克里斯,出什么问题了??我也有同样的问题!