【问题标题】:android fragment - data passing - best practice [duplicate]android片段-数据传递-最佳实践[重复]
【发布时间】:2014-10-11 13:18:57
【问题描述】:

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

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 的粉丝。所以我的问题是 - 为什么第一种方式是推荐的方式,这样做有什么好处?

【问题讨论】:

标签: android android-fragments


【解决方案1】:

使用 Bundle 可以让您的片段在重新创建时保持状态。这里有更详尽的解释:Best practice for instantiating a new Android Fragment

【讨论】:

  • 正是我想要的。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-03
相关资源
最近更新 更多