如果我创建了一个新的Fragment
,然后为其设置了参数,是否可以依靠onCreate()
的{{1}}中始终可用的那些参数?如果是,他们将如何做?如果不是,我该如何沟通,如果他们不希望我们编写新的构造函数?
答案 0 :(得分:1)
以这种方式尝试设置参数和获取参数的任何片段。
// 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()方法中。
答案 1 :(得分:0)
是的,您的参数在onCreate方法中可用。请查看此响应,以了解如何将参数传递给片段:How to transfer some data to another Fragment?
与片段通信的另一种方法是通过您的活动正在实现的接口,然后通过onAttach方法将其作为对片段的引用进行传递。更多信息: https://developer.android.com/training/basics/fragments/communicating