java - 如何从主 Activity 调用 fragment 方法

标签 java android android-fragments android-activity fragmentmanager

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

我的 fragment 方法:

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

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

最佳答案

首先创建一个接口(interface)

public interface MyInterface
{
    void myAction() ;
}

您的 fragment 必须实现此接口(interface)。

public MyFragment extends Fragment implements MyInterface

在您的 Activity 中,定义一个类型为 MyInterface 的字段:

  private MyInterface listener ;

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

创建 fragment 并添加它时:

setListener(myFragment);

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

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

关于java - 如何从主 Activity 调用 fragment 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35747346/

相关文章:

android - 滑动取消Android中的动画

Android 滑动 fragment 出屏幕

java - JSON 响应不完整,但在浏览器中正常

Android Webview 视频或 Youtube 抛出错误

android - Spinners android 在 fragment 中获取 sendUserActionEvent() mView == null

java - 方向更改后按钮和菜单停止工作

java - Spring 1.4.0 发布 hibernate 命名策略将在表名和列名中添加下划线(_)

java - 线程无缘无故卡在 BlockingQueue.take

java - Spring Security 使用 jwt 获取所有用户登录

java - 使用 Class.forName 创建静态数组