onCreateDialog和动态对话框(Android)

时间:2011-10-18 11:09:01

标签: java android dialog

我有点问题。在我的程序中,我定义了

protected Dialog onCreateDialog(int id) {
    if (id == CONTEXT_MENU_ID) {
        return createMyDialog();
    }
    return super.onCreateDialog(id);
}

然后显示调用对话框

showDialog(CONTEXT_MENU_ID)

我的问题是有时候我想在执行之间动态地更改Dialog的文本。但是使用该方法,Dialog永远不会重新创建。如何在显示Dialog之前调用createMyDialog()?

由于

2 个答案:

答案 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");