Java “活动”和“警报对话框”已启动两次

Java “活动”和“警报对话框”已启动两次,java,android,Java,Android,我有两次显示的AlertDialog,我不知道为什么!这个问题不仅仅适用于警报对话框;但是,它也适用于“活动” 请注意,我面临着Android 4.0.3的问题。然而,当我在Android 2.3.6上运行应用程序时,一切都正常 为了解决我的Activities问题,我在清单文件中设置了: android:launchMode=“singleInstance”成功了 但是,这不能用于AlertDialogs,因为它们在清单文件中没有任何引用将其设置为singleInstance或类似的内容 有些

我有两次显示的
AlertDialog
,我不知道为什么!这个问题不仅仅适用于
警报对话框
;但是,它也适用于
“活动”

请注意,我面临着Android 4.0.3的问题。然而,当我在Android 2.3.6上运行应用程序时,一切都正常

为了解决我的
Activitie
s问题,我在清单文件中设置了:
android:launchMode=“singleInstance”
成功了

但是,这不能用于
AlertDialog
s,因为它们在清单文件中没有任何引用将其设置为
singleInstance
或类似的内容

有些人告诉我在
show()
之后放置一个
断点来检查我的代码。但我不知道如何设置断点以及如何检查

编辑:

我正在使用HoloEverywhere和SherlockActionBar。我不知道它们有多大影响

@Override
public boolean onOptionsItemSelected(com.actionbarsherlock.view.MenuItem item) {
    switch(item.getItemId())
    {
    case R.id.action_one:
        alertDialog();
        break;
    case R.id.action_two:
        Intent i = new Intent(this,Info.class);
        startActivity(i);
        overridePendingTransition(0, 0);    
        break;

    }
    return super.onOptionsItemSelected(item);
}

private void alertDialog(){

        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("My title");
        AlertDialog alert= builder.create();
        alert.show();

}
case R.id.action\u two中
在清单文件中设置
launchMode=“singleInstance”
后工作正常。但是,在启动
警报对话框的
案例R.id.action\u one
中,它仍然会打开两次

@Override
    public boolean onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu) {
        // TODO Auto-generated method stub
        com.actionbarsherlock.view.MenuInflater inflater = getSupportMenuInflater();
        inflater.inflate(R.menu.action_options, menu);
        return super.onCreateOptionsMenu(menu);
    }
更改此行:

return super.onCreateOptionsMenu(menu);
致:

调用
super.onCreateOptions菜单
时,它会将附加的
onMenuItemClickListener
侦听器附加到菜单中的每个项目,从而记录2次单击

(注:我真的弄明白了这一点,并打算把它贴出来,但不得不接一个电话。不是开玩笑的)

更改这一行:

return super.onCreateOptionsMenu(menu);
致:

调用
super.onCreateOptions菜单
时,它会将附加的
onMenuItemClickListener
侦听器附加到菜单中的每个项目,从而记录2次单击


(顺便说一句:我真的发现了这个问题,并打算发布它,但不得不接个电话。不是开玩笑)

你能不能也在CreateOptions菜单和PrepareOptions菜单上发布你的
呢?@Tushar也发布了。但我认为问题不在于
警报对话框
。由于它也适用于
活动
,如果
启动模式
未设置为
单实例
,则无论是否为
单实例
,它都不应通过单击两次启动活动。您是否在任何地方设置了
菜单项.OnMenuItemClickListener
?请稍候,我将尝试制作一个按钮,并首先在按钮上进行测试,以检查问题是否来自
菜单
,该按钮是否起作用!因此,问题出在选项菜单的某个地方……您是否也可以发布您的
onCreateOptions菜单
onPrepareOptions菜单
?@Tushar也已发布。但我认为问题不在于
警报对话框
。由于它也适用于
活动
,如果
启动模式
未设置为
单实例
,则无论是否为
单实例
,它都不应通过单击两次启动活动。您是否在任何地方设置了
菜单项.OnMenuItemClickListener
?请稍候,我将尝试制作一个按钮,并首先在按钮上进行测试,以检查问题是否来自
菜单
,该按钮是否起作用!因此,问题出在选项菜单的某个地方……感谢您的解释(Tushar!)@JonathanHugh很抱歉之前不能给你答案,但我认为你最好还是自己去发现它。祝你的应用程序好运!谢谢你的解释(图萨!)@JonathanHugh很抱歉之前不能给你答案,但我认为你最好还是自己去发现它。祝你的应用程序好运!