У меня есть действие с именем 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();
Я думаю, что закрываю диалоговое окно с предупреждением, но я не уничтожаю его из памяти.Может кто-нибудь указать мне, что я здесь скучаю?