使用bundle在滑动选项卡片段中传递消息会返回null

时间:2015-07-31 10:52:45

标签: android android-fragments tabs sliding

我是使用片段的新手。这就是我在滑动标签中的第一个片段的onActivityCreated中传递StringArrayList的方法

$.validator.hideMessage($ele.get(0));

然后我试图将SlideList放在滑动标签的第三个片段中,如下所示:

public void onActivityCreated(@Nullable Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);

    next_personal = (Button) getActivity().findViewById(R.id.personal_next);


    next_personal.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {

            validate();
        }
    });
}

private void validate() {

    isValid = FormValidator.validate(this, new SimpleErrorPopupCallback(getActivity().getApplicationContext(), true));

    if (isValid) {
        arrayList = new ArrayList<String>();
        arrayList.add(memID.getText().toString());
        arrayList.add(idNumber.getText().toString());
        arrayList.add(firstName.getText().toString());
        arrayList.add(secondName.getText().toString());
        arrayList.add(lastName.getText().toString());
        arrayList.add(secondLastName.getText().toString());

        Bundle bundle = new Bundle();
        bundle.putStringArrayList("personal",arrayList);
        Log.d("bundle",": "+bundle.toString());
        FragContactInfo frag = new FragContactInfo();
        frag.setArguments(bundle);

        ((RegisterTabActivity) getActivity()).setCurrentItem(1, true);
    }
}

继续返回null。两个片段的onCreateView内部相同,结果相同。我在这里弄错了什么?

1 个答案:

答案 0 :(得分:0)

使用bundle无法帮助解析片段之间的数据(不知何故)

所以我只是创建了在目标片段中设置和获取数据的方法。

public void setPdata(JSONObject obj) {
    this.personalJSON = obj;
}

public JSONObject getPdata() {
    return personalJSON;
}

然后我调用set方法在发送方片段中设置json。

FragContactInfo frag = new FragContactInfo();
        frag.setPdata(json);

然后通过简单地调用get方法来访问json。

array1 = getPdata().getJSONArray("args");

如果有人有更高效的解决方案,请告诉我们。快乐的编码。