我有那个AlertDialog
显示两次,我不知道为什么!该问题不仅适用于AlertDialogs
; 但是,它也适用"Activities"
。
请注意,我遇到了 Android 4.0.3 的问题。但是,当我在 Android 2.3.6 上运行应用程序时,一切正常。
为了解决我的问题Activitie
,我在清单文件中设置了:
android:launchMode="singleInstance"
并且它有效。
但是,这不能为AlertDialog
s 完成,因为它们在清单文件中没有任何引用来设置它singleInstance
或类似的东西。
有人告诉我放一个BreakPoint
以便检查我的代码之后show()
。但我不知道如何放一个BreakPoint
以及如何检查。
编辑:
我正在使用 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_two
设置后它工作正常。launchMode="singleInstance"
然而,在case R.id.action_one
哪个发射AlertDialog
它仍然开放两次。
@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);
}