片段和onCreate()中的setArguments()

时间:2018-12-06 13:28:01

标签: android android-fragments

如果我创建了一个新的Fragment,然后为其设置了参数,是否可以依靠onCreate()的{​​{1}}中始终可用的那些参数?如果是,他们将如何做?如果不是,我该如何沟通,如果他们不希望我们编写新的构造函数?

2 个答案:

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

Basic Communication between two fragments