我有这样的活动:
工具栏上有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 )的初始设置值,并且当另一个按钮更改时单击。
答案 0 :(得分:2)
我认为如果您使用interface
来管理片段中的文本是最好的方法。该片段将实现该接口。单击按钮时,将调用由片段实现的片段中的函数。
另一种方法可以使用findFragmentByTag()
或findFragmentById()
创建片段的对象,然后在片段中调用用于处理文本的函数。
答案 1 :(得分:1)
使用方法interface
和onClickA(String buttonType)
创建一个onClickB(String buttonType)
。
然后创建一个实现此接口的对象(或使片段单独实现此接口)。我将其称为对象侦听器。
在侦听器方法实现中调用setButtonType(String buttonType)
。
然后将您的侦听器传递给活动(您可以使用getActivity()
在片段中获取父活动的实例,并将其强制转换为活动类),然后在按钮A的onClickListener中(活动中)调用listener.onClickA(yourString)
并执行按钮B也是一样。