如何在主要活动中从片段中触发事件?

Rah*_*pta 3 android android-fragments android-viewpager

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

就像我在一个片段中有一个按钮,它应该使用spannable字符串更改我的edittext粗体中的文本.如果所有这些都在我的主要活动中,我可以实现它.我的问题是如何在主要活动中捕获此按钮的监听器?

Dha*_*dra 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();
   }
}
Run Code Online (Sandbox Code Playgroud)


Ber*_*ťák 5

在您的片段中,您可以使用

((MainActivity)getActivity()).myMethod()

调用 MainActivity 的 myMethod。此解决方案假定您的片段位于 MainActivity(getActivity 必须返回 MainActivity 实例):-)