从活动中更改片段的变量值

时间:2018-12-14 06:59:00

标签: android android-fragments button android-activity

我有这样的活动:

enter image description here

工具栏上有2个按钮A和B,还有一个用于接管片段的框架。假设我在片段中有一个名为button_type的字符串变量。

我想要一个系统,以便当我在活动中单击按钮A时,片段中的button_type设置为 A ,而当我在活动中单击按钮B时,片段中的button_type设置为 B 。 这该怎么做?

请注意,当片段已处于活动状态时,我可以单击按钮(A,B)(与单击一个按钮后片段不一样)。

谢谢。

编辑: 目前,我正在尝试:

在MainActivity中,我得到类似的字符串button_type并根据单击按钮将其设置为 A B 并使用以下方法:

public String getData(){return button_type;}

在片段中,我在onViewCreated中使用button_type= activity.getData();

但是它似乎仅具有 A B (它是 A )的初始设置值,并且当另一个按钮更改时单击。

2 个答案:

答案 0 :(得分:2)

我认为如果您使用interface来管理片段中的文本是最好的方法。该片段将实现该接口。单击按钮时,将调用由片段实现的片段中的函数。

另一种方法可以使用findFragmentByTag()findFragmentById()创建片段的对象,然后在片段中调用用于处理文本的函数。

答案 1 :(得分:1)

使用方法interfaceonClickA(String buttonType)创建一个onClickB(String buttonType)。 然后创建一个实现此接口的对象(或使片段单独实现此接口)。我将其称为对象侦听器。 在侦听器方法实现中调用setButtonType(String buttonType)。 然后将您的侦听器传递给活动(您可以使用getActivity()在片段中获取父活动的实例,并将其强制转换为活动类),然后在按钮A的onClickListener中(活动中)调用listener.onClickA(yourString)并执行按钮B也是一样。