onCreateDialog и динамические диалоги (Android) - PullRequest
2 голосов
/ 18 октября 2011

У меня маленькая проблема. В моей программе я определил

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

и затем показать диалоговое окно, вызывающее

showDialog(CONTEXT_MENU_ID)

Моя проблема в том, что иногда я хочу динамически менять тексты диалога между исполнениями. Но с этим методом диалог никогда не воссоздается. Как сделать так, чтобы метод createMyDialog () вызывался перед отображением диалога?

Спасибо

Ответы [ 2 ]

5 голосов
/ 18 октября 2011

Если вы хотите изменить настройки диалога (текст и т. Д.), Вам нужно сделать это в onPrepareDialogMethod , он будет вызываться каждый раз, когда вы вызываете showDialog метод

0 голосов
/ 18 октября 2011

Возможно, стоит попробовать.Я не проверял это.В диалоговом окне, если вы установите текстовое представление в качестве его содержимого, вы можете установить для него идентификатор.

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)dialog.getWindow().getDecorView().findViewById(1005))
        .setText("New Text");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...