Android 如何从主活动中的片段触发事件?
我有一个主要的活动,有一个edittext和一个viewpager,它通过两个片段膨胀。两个片段布局都包含按钮。我的问题是如何在主活动中激发他们的点击侦听器Android 如何从主活动中的片段触发事件?,android,android-fragments,android-viewpager,Android,Android Fragments,Android Viewpager,我有一个主要的活动,有一个edittext和一个viewpager,它通过两个片段膨胀。两个片段布局都包含按钮。我的问题是如何在主活动中激发他们的点击侦听器 就像我在一个片段中有一个按钮,它应该使用spannable字符串更改edittext粗体中的文本。如果这一切都在我的主要活动中,我就能实现它。我的问题是如何在主活动中捕获此按钮的侦听器?在片段中,您可以使用 ((MainActivity)getActivity()).myMethod() 调用MainActivity的myMethod。此解
就像我在一个片段中有一个按钮,它应该使用spannable字符串更改edittext粗体中的文本。如果这一切都在我的主要活动中,我就能实现它。我的问题是如何在主活动中捕获此按钮的侦听器?在片段中,您可以使用
((MainActivity)getActivity()).myMethod()
调用MainActivity的myMethod。此解决方案假设您的片段位于MainActivity中(getActivity必须返回MainActivity实例):-)创建一个接口并将实例传递给fragment,当从fragment中单击按钮时,调用接口方法,这样您将获得对activity的回调,从那里您可以更新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();
}
}
是的,我只通过接口使用了自定义侦听器,Thans