EditText отображать неверный текст - PullRequest
0 голосов
/ 27 сентября 2011

Я застрял с очень странной проблемой.У меня есть editText в диалоге.Если я открою диалоговое окно один раз (нажав на элемент ListView) и сделаю некоторые вещи все в порядке.Если я открою диалоговое окно в следующий раз (коснувшись другого элемента ListView), editText отобразит то же значение в первый раз.

toast(profilesList.get(toEdit).get(NAME).toString()); //toast say Bob
et_profileName.setText(profilesList.get(toEdit).get(NAME).toString()); //I see Alice

Еще одна странная вещь: если я поверну дисплей, текст изменитсяв "БобАлисе".Если я закрою диалоговое окно, а затем снова открою его, все будет работать нормально, и в диалоговом окне отобразятся правильные строки.

Есть предложения?

РЕДАКТИРОВАТЬ: et_profileName находится в диалоговом окне, которое открывается при нажатии кнопки.элемент в ListView.

Дополнительный код:

protected Dialog onCreateDialog(int id) {
    dialog = new Dialog(this);
    ...
    et_profileName= (EditText)dialog.findViewById(R.id.et_profileName);
    ...
}

Вот когда я вызываю диалоговое окно:

showDialog(DIALOG_EDIT_PROFILE);
toast(profilesList.get(toEdit).get(NAME).toString());
et_profileName.setText(profilesList.get(toEdit).get(NAME).toString());

Также не работает, если я поставлю

et_profileName= (EditText)dialog.findViewById(R.id.et_profileName);

до et_profileName.setText (...)

1 Ответ

0 голосов
/ 27 сентября 2011

решено:

Следует переопределить onPrepareDialog(int id, Dialog dialog) для подготовки управляемого диалога перед его отображением.

Добавлен этот код, он работает:

@Override
protected void onPrepareDialog(int id, Dialog dialog){
    et_profileName= (EditText)dialog.findViewById(R.id.et_profileName);
    if(id==DIALOG_EDIT_PROFILE){
        et_profileName.setText(profilesList.get(toEdit).get(NAME).toString());
    }
}

Спасибо вам всем!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...