Изменение значения переменной фрагмента из действия - PullRequest
0 голосов
/ 14 декабря 2018

У меня есть такая активность:

enter image description here

На панели инструментов есть 2 кнопки A и B и рамка для перехода к фрагменту.Скажем, у меня есть строковая переменная с именем button_type во фрагменте.

Мне нужна система, чтобы при нажатии кнопки A в действии тип кнопки во фрагменте устанавливался в A , а при нажатии кнопки B в действии тип кнопки во фрагменте устанавливался в B .Как это сделать?

Обратите внимание, что я могу нажимать кнопки (A, B), когда фрагмент уже активен (это не так, как после того, как я нажимаю одну кнопку, фрагмент приходит.)

Заранее спасибо.

Редактировать: В настоящее время я пытаюсь это:

В MainActivity я получаю похожую строку button_type и устанавливаю ее как A или B в соответствии снажмите кнопку и используйте метод:

public String getData(){return button_type;}

И во фрагменте я использую: button_type= activity.getData(); в onViewCreated.

Но кажется, что первоначальное установленное значение имеет A и B (что составляет A ) и не изменяется при нажатии другой кнопки.

Ответы [ 2 ]

0 голосов
/ 14 декабря 2018

Я думаю, что лучше всего использовать interface для управления текстом во фрагменте.фрагмент будет реализовывать интерфейс.Когда нажатием кнопки вызывается функция во фрагменте, которая реализуется фрагментом.

Другим способом можно создать объект фрагмента, используя findFragmentByTag() или findFragmentById(), а затем вызвать функцию во фрагменте, который обрабатываеттекст.

0 голосов
/ 14 декабря 2018

Создайте interface с методами onClickA(String buttonType) и onClickB(String buttonType).Затем создайте объект, который реализует этот интерфейс (или заставьте фрагмент реализовать этот интерфейс самостоятельно).Я назову этот объект слушателем.вызов setButtonType(String buttonType) в реализации методов слушателя.Затем передайте слушателю активность (вы можете получить экземпляр родительской активности во фрагменте с getActivity() и привести его к вашему классу активности) и в onClickListener кнопки A (в действии) вызвать listener.onClickA(yourString) и сделать то же самое для кнопкиB.

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