Как закрыть диалоговое окно с предупреждением, отображающее пользовательский вид - PullRequest
1 голос
/ 20 марта 2012

У меня есть действие с именем MainActivity, в котором есть кнопка.При нажатии этой кнопки я показываю AlertDialog, который содержит пользовательское представление с именем ChildWindow.xml.Это пользовательское представление имеет несколько текстовых полей и кнопку ОК.При нажатии кнопки ОК я вызываю метод MainActivity.Я могу получить доступ к ChildWindow здесь как

view.getRootView().findViewById(R.id.txtFirstName);

Как только пользователь нажимает кнопку ОК, я должен закрыть диалоговое окно с предупреждением, которое я могу сделать как view.getRootView().setVisibility(View.GONE);

Моя проблема в том, что хотя я закрыл ChildWindow в приведенном выше операторе, я могу получить ссылку на текстовое поле в следующей строке, что означает, что AlertDialog закрыт, но дочернее окно все еще там.Вот как выглядит нажатие кнопки ОК:

Это работает, как и ожидалось:

    EditText tb = (EditText) view.getRootView().findViewById(R.id.txtFirstName);
    Toast toast = Toast.makeText(getApplicationContext(), tb.getText(), Toast.LENGTH_LONG);
    toast.show();
    view.getRootView().setVisibility(View.GONE);

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

    view.getRootView().setVisibility(View.GONE);
    EditText tb = (EditText) view.getRootView().findViewById(R.id.txtFirstName);
    Toast toast = Toast.makeText(getApplicationContext(), tb.getText(), Toast.LENGTH_LONG);
    toast.show();

Я думаю, что закрываю диалоговое окно с предупреждением, но я не уничтожаю его из памяти.Может кто-нибудь указать мне, что я здесь скучаю?

1 Ответ

0 голосов
/ 20 марта 2012

просто вызовите AlertDialog.dismiss (), чтобы фактически закрыть AlertDialog, который содержит ваш пользовательский вид

...