我知道这已经被问过很多次但没有答案可以帮助我。
我有一个对话框会在某个时刻弹出(当我调用方法“showServerDialog”时)。 显示对话框,一切正常,直到我使用“negativeButton”关闭对话框,然后旋转屏幕。然后对话重新出现,虽然我解雇了它。
我读了很多次,如果我使用showDialog(int id)方法显示对话框并覆盖onCreateDialog(int id)方法,android会自动处理所有内容。而这正是我正在做的事情:
@SuppressWarnings("deprecation")
public void showServerDialog(int position){
showDialog(REMOVE_SERVER_DIALOG_ID);
}
@SuppressWarnings("deprecation")
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case REMOVE_SERVER_DIALOG_ID:
System.out.println("---------------------------------DIALOG");
// Create AlterDialog
Builder builder = new AlertDialog.Builder(this);
builder.setMessage("This will end the activity");
builder.setCancelable(true);
builder.setPositiveButton("I agree", new OkOnClickListener());
builder.setNegativeButton("No, no", new CancelOnClickListener());
AlertDialog dialog = builder.create();
dialog.show();
return dialog;
}
return super.onCreateDialog(id);
}
private final class CancelOnClickListener implements DialogInterface.OnClickListener{
public void onClick(DialogInterface dialog, int which) {
// Do nothing and just close dialog
}
}
但是,当我通常使用对话框中的按钮关闭对话框并旋转屏幕时,它就会重新出现。
我完全被它困住了。请帮忙。
答案 0 :(得分:0)
所以,最后我找到了答案:
而不是在OnClickListeners中什么也不做,我必须调用: MyActivity.this.removeDialog(REMOVE_SERVER_DIALOG_ID);
不要解雇!这有效!答案 1 :(得分:-2)
遇到同样的问题,请在manifest.xml
<activity
...
android:configChanges="orientation|screenSize|keyboardHidden"
/>
你可以试试这个:)