Android 如何从主活动中的片段触发事件?

Android 如何从主活动中的片段触发事件?,android,android-fragments,android-viewpager,Android,Android Fragments,Android Viewpager,我有一个主要的活动,有一个edittext和一个viewpager,它通过两个片段膨胀。两个片段布局都包含按钮。我的问题是如何在主活动中激发他们的点击侦听器 就像我在一个片段中有一个按钮,它应该使用spannable字符串更改edittext粗体中的文本。如果这一切都在我的主要活动中,我就能实现它。我的问题是如何在主活动中捕获此按钮的侦听器?在片段中,您可以使用 ((MainActivity)getActivity()).myMethod() 调用MainActivity的myMethod。此解

我有一个主要的活动,有一个edittext和一个viewpager,它通过两个片段膨胀。两个片段布局都包含按钮。我的问题是如何在主活动中激发他们的点击侦听器


就像我在一个片段中有一个按钮,它应该使用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