当我创建两个对话框时,即使另一个对象框的条件为真,也只显示一个对话框。
这是代码
if (z<=18){
showDialog(1);
} else {
showDialog(3);
}
...................................................................................................................................................................
protected Dialog onCreateDialog(int id)
{
if (id== 1)
{
AlertDialog.Builder b=new AlertDialog.Builder(this);
b.setTitle("1st dialog");
b.setPositiveButton("OK",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
});
AlertDialog d=b.create();
d.show();
}
else
{
AlertDialog.Builder b2=new AlertDialog.Builder(this);
b2.setTitle("2nd dialog ");
b2.setPositiveButton("OK",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
});
AlertDialog dialoog=b2.create();
dialoog.show();
}
return super.onCreateDialog(id);
}
答案 0 :(得分:0)
如果你有if - else吗?
,两种情况如何都是真的答案 1 :(得分:0)
两种情况如何true
?您正在使用彼此独占的if
else
条件检查,并且一次只能使用其中一个。因此只显示一个对话框。
答案 2 :(得分:0)
为什么不初始化两个AlertDialogs,根据情况你只需要显示一个:
定义对话框:
//infodialog
infodialog = new AlertDialog.Builder(this).create();
infodialog.setTitle("INFO");
infodialog.setMessage(getApplicationContext().getString(R.string.info));
infodialog.setButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
return; }
});
//disclaimerdialog
disclaimerdialog = new AlertDialog.Builder(this).create();
disclaimerdialog.setTitle("Disclaimer");
disclaimerdialog.setMessage(getApplicationContext().getString(R.string.disclaimer));
disclaimerdialog.setButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
return; }
});
并选择一个(我使用了一个optionmenu并切换,你可以在你的dialog.show ofcourse中使用任何if-function):
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()){
case R.id.info:
infodialog.show();
return true;
case R.id.disclaimer:
disclaimerdialog.show();
return true;