在显示对话框后是否可以替换AlertDialog的视图?

时间:2013-02-07 13:01:08

标签: android alertdialog

E.g。

AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setView(someView);
AlertDialog dialog = builder.create();
dialog.show();
... then later ...
dialog.setView(someOtherView);

代码执行时没有错误,但是对话框中没有替换视图。我做错了还是不可能?

2 个答案:

答案 0 :(得分:3)

我不确定为什么但是在使用警告对话框构建器时setView()不起作用但setContentView()不起作用

我认为警告对话框构建器不会以传统方式构建警报对话框,以便与所有版本的android兼容,因此您需要更新内容视图。

Dialog.setContentView(View view)

AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setView(view);
AlertDialog alertDialog = builder.create();
alertDialog.show();

然后再

alertDialog.setContentView(newView);

重建新的警报对话框

可能更容易
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setView(view);
AlertDialog alertDialog = builder.create();
alertDialog.show();

然后再

alertDialog.dismiss();
AlertDialog.Builder updatedBuilder = new AlertDialog.Builder(context);
updatedBuilder.setView(updatedView);
AlertDialog updatedAlertDialog = builder.create();
updatedAlertDialog.show();

答案 1 :(得分:-1)

不,这是不可能的。尝试关闭警告框并设置视图并再次显示。