Hei*_*erg 7 android android-fragments
这两种方法之间的真正区别是什么?
1.我正在使用标准的老式捆绑包:
public static final Fragment newInstance(int val1, int val2) {
TestFragment f = new TestFragment();
Bundle bundle = new Bundle();
bundle.putInt("val1", val1);
bundle.putInt("val2", val2);
f.setArguments(bundle);
return f;
}
Run Code Online (Sandbox Code Playgroud)
我正在设置为实例成员
public static final Fragment newInstance(int val1, int val2) {
TestFragment f = new TestFragment();
f.val1 = val1;
f.val2 = val2;
return f;
}
Run Code Online (Sandbox Code Playgroud)
在第一个示例中,您实际上没有设置片段实例变量val1和val2,因此它们保持未初始化状态.因此,您需要回读onCreate中的包以设置实例变量.
当片段实例被销毁并重新创建时(例如,由于设备旋转),onCreate(或DialogFragments的onCreateDialog)可以使用以下命令重新加载参数:
public void onCreate(Bundle savedInstanceState)
{
if (savedInstanceState != null)
{
Bundle args = getArguments();
val1 = args.getInt("val1");
val2 = args.getInt("val2");
}
}
Run Code Online (Sandbox Code Playgroud)
你的国家可以恢复.
| 归档时间: |
|
| 查看次数: |
438 次 |
| 最近记录: |