我有一个主活动有一个edittext和一个viewpager,它通过两个片段膨胀。片段布局都包含按钮。我的问题是如何在主要活动中触发他们的点击监听器。
就像我在一个片段中有一个按钮,它应该使用spannable string更改我的edittext粗体中的文本。如果所有这些都在我的主要活动中,我可以实现它。我的问题是如何在主要活动中捕获此按钮的监听器?
答案 0 :(得分:8)
创建一个接口并将实例传递给片段,当从片段中单击按钮时,调用接口方法,这样您就可以回调活动,然后可以更新您的UI。
例如:
public interface MyInterface {
public void buttonClicked();
}
public class Activity implements MyInterface {
@override
public void buttonClicked() {
//Change the UI
}
}
public class MyFragment extends Fragment {
MyInterface interface;
public void setInterface(MyInterface interface) {
this.interface = interface;
}
public void onClick(View v) {
interface.buttonClicked();
}
}
答案 1 :(得分:4)
在您的片段中,您可以使用
((MainActivity)getActivity()).myMethod()
调用MainActivity的myMethod。此解决方案假设您的片段位于MainActivity中(getActivity必须返回MainActivity实例): - )