onAttach方法用于附加到父片段

时间:2017-01-19 04:56:02

标签: android android-fragments

我有一个可以附加到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侦听器。

1 个答案:

答案 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