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

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

我的片段方法:

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

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


答案 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.

答案 2

这意味着你调用了一个片段方法

((YourFragmentClass) fragment).Yourmethod();

推荐