每当对话框准备好绘制时,我需要更新自定义对话框内容。我不确定这可以直接刷新,或者我是否需要先关闭它并重新启动它?
答案 0 :(得分:3)
获取Dialog正在使用的视图,[post]使其无效。
而不是Dialog.setContentView(int)
;
做类似的事情:
public class MyDialog {
View v = null;
public Dialog show(Context context) {
Dialog d = new Dialog(context);
v = LayoutInflater.from(context).inflate(R.layout.resource, null);
d.setContentView(v);
return d.show();
}
public void update() {
v.invalidate();
}
}
答案 1 :(得分:0)
您可以在onPrepareDialog
中执行所有操作。每次要显示对话框时都会调用它。
void onPrepareDialog(final int id, final Dialog dialog) {
switch(id) {
case MY_DIALOG:
TextView txtView = (TextView)dialog.findViewById(R.id.mytext);
txtView.setText("My new text"):
....
}
}