我已经看到在几个Android回调方法中恢复了Bundle
,但在很多情况下,developers网站上有Bundle
的手动创建和设置,来自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中,使用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");
}
}
我对每个回调方法VS"其他捆绑包提供的Bundle
数据感到有点困惑":
Bundle bundle=getArguments();
以及检索这些不同类型的捆绑数据的正确方法和地点。
提前致谢!
答案 0 :(得分:1)
上述两种方式正是
的正确方法Fragment
的新实例并传递初始参数。Fragment
。换句话说,你走在正确的轨道上!它应该有效,你应该对自己感到满意:)
修改强>
Bundle
或onCreateView()
中检索onCreate()
onCreate()
。我更喜欢Fragment
,因为它代表了创作
Bundle
实例的,并且是初始化的正确位置。getArguments()
时始终只检索到一个Bundle
个实例,此int
个实例包含您String
的所有内容,{{1}无论如何。