【问题标题】:How to fire event from fragment in main activity?如何从主要活动中的片段触发事件?
【发布时间】:2013-11-21 12:11:22
【问题描述】:

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

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

【问题讨论】:

    标签: android android-fragments android-viewpager


    【解决方案1】:

    创建一个接口并将实例传递给片段,当从片段中单击按钮时调用接口的方法,这样您将获得对活动的回调,然后您可以从那里更新您的 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();
       }
    }
    

    【讨论】:

    • 是的,我只通过接口使用了自定义监听器,谢谢
    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2021-10-13
      • 2021-03-04
      • 2022-01-25
      • 1970-01-01
      • 1970-01-01
      • 2016-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多