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很抱歉之前不能给你答案,但我认为你最好还是自己去发现它。祝你的应用程序好运!