我已經建立了一個機器人AlertDialog將觸發其他Android AlertDialog(名爲dialog2)如果某些條件發生(命名對話框)。不能立刻解僱2個AlertDialogs Android中
我檢查,如果只有其中一個屏幕上顯示它是什麼沒有任何問題駁回。
問題是當兩者都出現了,這種情況發生的時候我按OK按鈕第二個對話框,它只是關閉了第二個對話框,儘管第一個對話框甚至顯示在屏幕上。
這是爲了dialog2該操作相關的代碼:
dialog2.setOnShowListener(new DialogInterface.OnShowListener()
{
@Override
public void onShow(final DialogInterface dialog)
{
Button button = ((AlertDialog)
dialog).getButton(AlertDialog.BUTTON_POSITIVE);
button.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View view)
{
[some more operations]
dialog2.dismiss();
dialog.dismiss();
}
});
}
});
最奇怪的是,如果我剿線dialog2.dismiss();通過只留下dialog.dismiss();什麼被擱置是第二個對話框,不是第一個,看起來像Android這樣莫名其妙地混淆了一個與其他的,我不認爲應該發生,因爲他們都是這樣單獨創建:
dialog=[code to create that dialog]
dialog2=[code to create that dialog]
這樣做是當我被問到關閉對話框時,我看到那個應用程序關閉dialog2的唯一方法就是做dialog = dialog2,而我不是。我認爲它們應該是不同的對象,每個對象都有它們的特徵。
我看不出有任何理由爲什麼發生這種情況的,好像從我的角度來看一個無能的錯誤。希望你可以給出有關正在發生的事情的想法。