5

例如

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

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

4

2 回答 2

3

我不知道为什么,但是当使用警报对话框生成器时 setView() 不起作用,但 setContentView() 确实

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

Dialog.setContentView(查看视图)

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();
于 2015-12-04T15:49:26.333 回答
-2

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

于 2013-02-07T13:12:38.570 回答