我有点问题。在我的程序中,我定义了
protected Dialog onCreateDialog(int id) {
if (id == CONTEXT_MENU_ID) {
return createMyDialog();
}
return super.onCreateDialog(id);
}
然后显示调用对话框
showDialog(CONTEXT_MENU_ID)
我的问题是有时候我想在执行之间动态地更改Dialog的文本。但是使用该方法,Dialog永远不会重新创建。如何在显示Dialog之前调用createMyDialog()?
由于
答案 0 :(得分:5)
如果您想更改对话框设置(文字等),您需要在onPrepareDialogMethod中进行更改,每次调用showDialog
方法
答案 1 :(得分:0)
这可能值得一试。我还没有测试过。如果您将textview设置为其内容,则对于该对话框,您可以为其设置ID。
TextView text = new TextView(this);
ViewGroup.LayoutParams vp = new ViewGroup.LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT);
text.setLayoutParams(vp);
text.setText("HI");
text.setId(1005);
dialog.setContentView(text);
因此,下次尝试更新textview时,您可以使用ID访问它。
((TextView)dialog.getWindow().getDecorView().findViewById(1005))
.setText("New Text");