我有一个片段,里面也有两个片段。我正在尝试在父片段的两个片段中实现侦听器。但是,我遇到了一个错误
@Override
public void onAttach(Context context) {
super.onAttach(context);
if (context instanceof MyPostsUpdateListener) {
myPostsUpdateListener = (MyPostsUpdateListener) context;
} else {
throw new RuntimeException(context.toString()
+ " must implement MyPostsUpdateListener");
}
}
我已经用一个不同的侦听器以相同的方式实现了类似的功能,并且可以正常工作,但是在那种情况下,它是针对活动而不是父片段实现的。
对此有任何解决方法吗?因为我确定我已经以与其他活动相同的方式实现了它,唯一的区别是它是由活动实现的,在这种情况下,它是由片段实现的。
答案 0 :(得分:4)
要将数据传递回父片段,您可以通过调用getParentFragment方法在子片段中获取父片段的实例。
public class ChildFragment extends Fragment {
private void sendToParentFragment(String data) {
Fragment fragment = getParentFragment();
if (fragment instanceof MyPostsUpdateListener) {
myPostsUpdateListener = (MyPostsUpdateListener) fragment;
myPostsUpdateListener.onData(data);
}
}
}