setArguments() in Fragment and onCreate()



如果我创建一个新的Fragment,然后为其设置参数,我是否可以依赖于FragmentonCreate()中始终可用的这些参数?如果是,他们是如何做到的?如果他们不想让我们写新的构造函数,我该如何沟通?

用这种方式尝试任何片段来设置参数和获取参数。。

// pass parameter to pass into bundle
public static NewMessageFragment newInstance(UserData userData) {
NewMessageFragment newMessageFragment = new NewMessageFragment();
Bundle bundle = new Bundle();
bundle.putParcelable(Constants.KEY_MESSAGE_USER_VO, userData);
newMessageFragment.setArguments(bundle);
return newMessageFragment;
}
// get value.
private void extractArguments() {
Bundle bundle = getArguments();
if (bundle != null) {
userData = bundle.getParcelable(Constants.KEY_MESSAGE_USER_VO);
}
}

extractArguments((方法调用到onCreateView((法中。

是的,您的参数在onCreate方法中是可用的。请查看此响应,以了解如何将参数传递到片段:如何将一些数据传输到另一个片段?

与片段通信的另一种方式是通过您的活动正在实现的接口,并在onAttach方法中将其作为对片段的引用进行传递。更多信息:https://developer.android.com/training/basics/fragments/communicating

两个片段之间的基本通信

最新更新