在片段上恢复包信息的正确方法和位置?

The correct way and place to restore bundle information on a fragment?

我已经在几个 Android 回调方法中看到 Bundles 恢复了,但在许多情况下 Bundles 是手动创建和设置的 [=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 实例包含您所有的 intStrings,随便什么。