如何从主活动中调用片段方法
2022-09-02 23:00:01
我在片段类中有方法。我想从主活动调用该方法,但我不想使用FracmentById(或)FragmentByTag。
我的片段方法:
public void setItemFromDrawer(String sourceTag, String destTag) {
//dosomething
}
如何在不使用FracmentById(或)FragmentByTag的情况下从主活动中调用上述方法?
我在片段类中有方法。我想从主活动调用该方法,但我不想使用FracmentById(或)FragmentByTag。
我的片段方法:
public void setItemFromDrawer(String sourceTag, String destTag) {
//dosomething
}
如何在不使用FracmentById(或)FragmentByTag的情况下从主活动中调用上述方法?
首先创建一个接口
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.
这意味着你调用了一个片段方法
((YourFragmentClass) fragment).Yourmethod();