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