Как мне редактировать содержимое TextViews в Android диалогах? - PullRequest
0 голосов
/ 22 июня 2010

Я хочу отобразить диалоговое окно в моем приложении для Android, где определенные TextViews в макете должны иметь контент, установленный во время выполнения.

, хотя показ самого диалога не представляет никакой проблемы, доступ к TextViews через TextView.setText (String) приводит к сбою приложения.

это то, что я получил до сих пор:

dialog = new Dialog(this);

dialog.setContentView(R.layout.dialog);
dialog.setTitle("my dialog");

dialog.show();

TextView tv;
tv = (TextView) findViewById(R.id.title);
tv.setText("bkjadsjbk");

, хотя это работает очень хорошо без последних 3 строк, запустив этот код С TextView-В моем приложении происходит сбой.

Есть ли способ сделать это правильно?

Ответы [ 3 ]

1 голос
/ 22 июня 2010

Было бы хорошо, если бы вы могли опубликовать журнал ошибок, чтобы мы могли понять.

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

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

TextView tv = (TextView) dialog.findViewById(R.id.title);
tv.setText("your text...");

Если это не работает, тогда опубликуйте свой журнал ошибок.

1 голос
/ 22 июня 2010

Вы звоните findViewById() на свой Activity. Ваш Dialog имеет TextViews. Позвоните findViewById() на Dialog, и вам может повезти.

0 голосов
/ 12 октября 2015

изменить

TextView tv = (TextView) dialog.findViewById(R.id.title);
tv.setText("your text...");

на

final TextView tv = (TextView) dialog.findViewById(R.id.title);
    tv.setText("your text...");
...