android fragment - 数据传递 - 最佳实践

标签 android android-fragments

<分区>

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

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

最佳答案

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

关于android fragment - 数据传递 - 最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25366496/

相关文章:

java - 在 Android 中使用 BroadcastReceiver 注册耳机按钮单击

android - 使用 LinearLayout.LayoutParams 时出现 ClassCastException

android - recyclerview 内的多行编辑文本未正确滚动

android - 如何停止 IntentService?

Android - 在 fragment 中使用 Setter 与传递 Bundle

android - fragment 中的 ViewPager

android - 对话框 fragment 顶部的布局边距/填充

android - 将多个 Activity 转换为单个 fragment

android - 应用程序可以在模拟器上运行,但不能在安卓上运行

Android httpclient 文件上传数据损坏和超时问题