Android 从片段调用片段方法

Android 从片段调用片段方法,android,Android,当前我的片段A打开一个新的对话框片段B。有没有办法从片段A调用方法从对话框片段B调用方法?您需要做以下两件事之一: 将引用关联到活动中的每个片段 使用企业服务总线(Otto是一个开源选项)在片段之间直接通信 在标准框架中,无法直接对片段进行对话。您必须手动创建此链接。关于android网站,您不应该调用另一个片段中的片段,而应该让活动处理切换片段 为此, 您可以创建接口并在活动中实现它 public interface MyListener{ public void switchFr

当前我的片段A打开一个新的对话框片段B。
有没有办法从片段A调用方法从对话框片段B调用方法?

您需要做以下两件事之一:

  • 将引用关联到活动中的每个片段
  • 使用企业服务总线(Otto是一个开源选项)在片段之间直接通信

在标准框架中,无法直接对片段进行对话。您必须手动创建此链接。

关于android网站,您不应该调用另一个片段中的片段,而应该让活动处理切换片段

为此,

您可以创建接口并在活动中实现它

public interface MyListener{
    public void switchFragment(Fragment f);
}

public class MyActivity extends Activity implements MyListener{

    @Override
    public void switchFragement(Fragment f){
        getSupportFragmentManager().beginTransaction
                 .replace(R.id.container, f)
                 .commit();
    }
}
在片段类中

public class MyFragment extends Fragment{

    private MyListener listener;

    @Override
    public void onAttach(Activity activity) {
        super.onAttach(activity);
        try {
            listener = (MyListener) activity;
        } catch (ClassCastException e) {
            throw new ClassCastException(activity.toString()
                    + " must implement MyListener");
        }
    }

   @Override
    public void onDetach() {
        super.onDetach();
        listener = null;
    }

}
并且简单地使用

listener.switchFragment(fragment);

在初始化片段a时,能否将对片段a的引用传递给片段B?然后通过片段B中的引用调用它?我如何通过referencePass传递整个片段的方法,然后在Frag B中调用
myReference.myMethod()
public CustomAlertBoxFragment(活动a,MyFragClass Frag){this.c=a;this.Frag=Frag;}
然后调用
this.Frag.yourMethod()如何关联对我的活动中每个片段的引用