恢复片段捆绑信息的正确方法和地点?

时间:2015-05-26 12:53:59

标签: android android-fragments android-bundle

我已经看到在几个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(); 

以及检索这些不同类型的捆绑数据的正确方法和地点

提前致谢!

1 个答案:

答案 0 :(得分:1)

上述两种方式正是

的正确方法
  • 初始化Fragment的新实例并传递初始参数。
  • 检索Fragment
  • 中的初始参数

换句话说,你走在正确的轨道上!它应该有效,你应该对自己感到满意:)

修改

  • 可以BundleonCreateView()中检索onCreate() onCreate()。我更喜欢Fragment,因为它代表了创作 Bundle实例的,并且是初始化的正确位置。
  • 调用getArguments()时始终只检索到一个Bundle个实例,此int个实例包含您String的所有内容,{{1}无论如何。