如何从主活动调用片段方法

新手上路,请多包涵

我在片段类中有方法。我想从主要活动中调用该方法,但我不想使用 FragmentById(或)FragmentByTag。

我的片段方法:

 public void setItemFromDrawer(String sourceTag, String destTag) {
    //dosomething
}

如何在不使用 FragmentById(或)FragmentByTag 的情况下从主活动调用上述方法?

原文由 hikoo 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 316
1 个回答

首先创建一个界面

public interface MyInterface
{
    void myAction() ;
}

您的片段必须实现此接口。

 public MyFragment extends Fragment implements MyInterface

在您的活动中, 定义一个类型为 MyInterface 的字段

   private MyInterface listener ;

  public void setListener(MyInterface listener)
  {
     this.listener = listener ;
  }

创建片段并添加它时:

 setListener(myFragment);

最后,当您想要调用 Fragment 方法的情况发生时,只需调用:

 listener.myAction() ; // this will call the implementation in your MyFragment class.

原文由 Farhad Faghihi 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题