我有一个可以附加到Activity或父片段的片段。此片段具有必须由其附加到的任何人实现的接口。对于活动,这很简单:
@Override
public void onAttach(Context context) {
super.onAttach(context);
if (context instanceof Activity){
Activity activity =(Activity) context;
try {
mCallback = (OnMyListener) activity;
} catch (ClassCastException e) {
throw new ClassCastException(activity.toString() +
" must implement OnMyListener");
}
}
}
但是,我无法为托管此特定片段的其他片段设置mCallback
侦听器。
答案 0 :(得分:0)
你不能直接在两个片段之间进行通信,它必须彻底完成托管它的活动(我看到你已经实现了上半部分)。
活动收到发件人片段的数据后,您可以先通过解析接收者片段的引用将其发送到接收者片段,使用:
ReceiverFragment fragment = ( ReceiverFragment) getSupportFragmentManager().findFragmentById(R.id.receiver_fragment_id);
如果它为null则需要先实例化它并使用fragment.setArguments(Bundle)传递数据,否则你可以直接调用接收器片段的成员函数。
检查:https://developer.android.com/training/basics/fragments/communicating.html