在片段上恢复包信息的正确方法和位置?
The correct way and place to restore bundle information on a fragment?
我已经在几个 Android 回调方法中看到 Bundle
s 恢复了,但在许多情况下 Bundle
s 是手动创建和设置的 [=18] =] 网站,在本例中来自 Fragment
创建时的外部消息:
public static DetailsFragment newInstance(int index) {
DetailsFragment f = new DetailsFragment();
// Supply index input as an argument.
Bundle args = new Bundle();
args.putInt("index", index);
f.setArguments(args);
return f;
}
比如在这个other question中,bundle数据是在onCreateView()
方法中恢复的
public class Frag2 extends Fragment {
public View onCreateView(LayoutInflater inflater,
ViewGroup containerObject,
Bundle savedInstanceState){
//here is your arguments
Bundle bundle=getArguments();
//here is your list array
String[] myStrings=bundle.getStringArray("elist");
}
}
我对每个回调方法提供的 Bundle
数据 VS "other bundles":
有点困惑
Bundle bundle=getArguments();
以及检索这些不同类型的捆绑数据的正确方法和位置。
提前致谢!
以上两种方式都是
的正确方式
- 初始化
Fragment
的新实例并传递初始参数。
- 检索
Fragment
中的初始参数。
换句话说,你走对了!它应该有效,您应该对自己感到满意:)
编辑:
Bundle
可以在 onCreateView()
或
onCreate()
。我更喜欢 onCreate()
,因为它代表了创造
Fragment
实例,是初始化的正确位置。
- 调用
getArguments()
总是检索到一个 Bundle
实例,而这个 Bundle
实例包含您所有的 int
,String
s,随便什么。
我已经在几个 Android 回调方法中看到 Bundle
s 恢复了,但在许多情况下 Bundle
s 是手动创建和设置的 [=18] =] 网站,在本例中来自 Fragment
创建时的外部消息:
public static DetailsFragment newInstance(int index) {
DetailsFragment f = new DetailsFragment();
// Supply index input as an argument.
Bundle args = new Bundle();
args.putInt("index", index);
f.setArguments(args);
return f;
}
比如在这个other question中,bundle数据是在onCreateView()
方法中恢复的
public class Frag2 extends Fragment {
public View onCreateView(LayoutInflater inflater,
ViewGroup containerObject,
Bundle savedInstanceState){
//here is your arguments
Bundle bundle=getArguments();
//here is your list array
String[] myStrings=bundle.getStringArray("elist");
}
}
我对每个回调方法提供的 Bundle
数据 VS "other bundles":
Bundle bundle=getArguments();
以及检索这些不同类型的捆绑数据的正确方法和位置。
提前致谢!
以上两种方式都是
的正确方式- 初始化
Fragment
的新实例并传递初始参数。 - 检索
Fragment
中的初始参数。
换句话说,你走对了!它应该有效,您应该对自己感到满意:)
编辑:
Bundle
可以在onCreateView()
或onCreate()
。我更喜欢onCreate()
,因为它代表了创造Fragment
实例,是初始化的正确位置。- 调用
getArguments()
总是检索到一个Bundle
实例,而这个Bundle
实例包含您所有的int
,String
s,随便什么。