android片段 - 数据传递 - 最佳实践

时间:2014-08-18 15:07:27

标签: android android-fragments

将数据传递给片段时为什么这样做 - (即你应该这样做的方式)

private String mParam1;
private String mParam2;



public static ReviewPagesFragment newInstance(String param1, String param2) {
    ReviewPagesFragment fragment = new ReviewPagesFragment();
    Bundle args = new Bundle();
    args.putString(ARG_PARAM1, param1);
    args.putString(ARG_PARAM2, param2);
    fragment.setArguments(args);
    return fragment;
}

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if (getArguments() != null) {
        mParam1 = getArguments().getString(ARG_PARAM1);
        mParam2 = getArguments().getString(ARG_PARAM2);
    }
}

而不是这样做

private String mParam1;
private String mParam2;



public static ReviewPagesFragment newInstance(String param1, String param2) {
    ReviewPagesFragment fragment = new ReviewPagesFragment();
    fragment.mParam1 = param1;
    fragment.mParam2 = param2;
    return fragment;
}

第二种方式更简单,并为您提供更好的性能。我是K.I.S.S.的粉丝。所以我的问题是 - 为什么推荐方式的第一种方式以及通过这种方式获得的好处是什么?

1 个答案:

答案 0 :(得分:2)

使用Bundle可以使片段在重新创建时保持状态。这是一个更彻底的解释:Best practice for instantiating a new Android Fragment