将 FragmentActivity 引用到外部接口

Reference FragmentActivity to external Interface

我想在 class 的片段中调用一个函数。我如何将 FragmentActivity 附加到外部接口,就像我附加 Activities

目前 Activity,class 包含

public interface externalInterface {
    public void gotoNext();
}

public void setActivity(externalInterface activity) {
    parentActivity = activity;
}

我打电话给

parentActivity.gotoNext();

Activity 有

@Override
public void gotoNext() {
    //Do something
}

同样,我需要在同一个 class 的片段中调用 gotoNext() 函数。

如果您要调用的函数已经在 Activity 中,那么您可以执行类似下面的代码,它将起作用 -

关键是,在 Fragment 中有一个名为 getActivity() 的方法,您可以使用它来访问 activity.

中的方法
public interface ExternalInterface {
  public void gotoNext();
}

public MyActivity implments ExternalInterface {
 public void gotoNext(){
 //Do something here
 }
}

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

 public MyFragment extends Fragment{

@Override
public void onCreateView(....){
 ((ExternalInterface )getActivity()).gotoNext();
 }
}

如果我没记错的话你想在 FragmentActivty

中的片段中使用 gotoNext()
  1. 确保片段 activity 实现接口。
  2. 在片段中调用 getActivity() 可以向下转换到您的接口并调用该方法(确保 onActivityCreated() 调用完成)