Как мне легко получить доступ к представлениям во фрагменте, который надувается при нажатии кнопки? - PullRequest
0 голосов
/ 03 марта 2019

У меня есть действие с FrameLayout в качестве контейнера для фрагментов, и я хочу заменить раздутый фрагмент на экране, когда я нажимаю там кнопку.Я делаю это динамически через FragmentManager и FragmentTransaction.Я знаю, что мне нужно немного подождать, чтобы получить доступ к представлениям в первом фрагменте, поэтому я делаю это в действиях onStart.Когда я нажимаю кнопку, я заменяю старый фрагмент новым, но теперь возникает вопрос: когда я смогу получить доступ к новым представлениям фрагментов?НапримерУ меня есть EditText в первом фрагменте, и я хочу передать текст в этом EditText новому фрагменту и поместить его в EditText там.Я добавляю новый фрагмент с помощью FragmentTransaction, а затем хочу определить новый EditText и отослать к нему EditText из нового фрагмента.Как и когда я могу это сделать, поскольку новый фрагмент надувается при нажатии кнопки?

Ответы [ 2 ]

0 голосов
/ 03 марта 2019

Вы должны сами инициировать и обновлять представления фрагмента.Вернемся к вашему случаю и выполните следующие шаги:

  1. Определите интерфейс для передачи данных (текст в EditText) из первого фрагмента в действие.
  2. При нажатии на кнопку первого фрагмента вызовите метод обратного вызова с данными вместе с действием.
  3. В методе обратного вызова действия создайте новый экземпляр нового / второгофрагмент, который получает текст в качестве параметра.
  4. В новом / втором фрагменте напишите код, чтобы получить значение, переданное из действия, а затем установите его как содержимое EditText.
0 голосов
/ 03 марта 2019

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

, вы можете получить доступ к фрагменту с идентификатором или именем:

Fragment fragment = getSupportFragmentManager().findFragmentById(R.id.myFragment);
if (fragment instanceof MyFragment)
    fragment.setMyEdittext();

, поэтому объявите метод, который устанавливает Textотредактируйте текст во фрагменте и получите доступ к этому методу с кодом выше.

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