Bundle.put(String,Pacelable)与Intent.putExtra(String,Parcelable)

时间:2015-01-14 15:57:35

标签: android android-intent android-fragments

任何人都可以解释为什么除了android.os.Uri(实现Parcelabe,Comparable)外,Bundle.put会出现但是Intent.putExtra会不会?

Uri uri = Uri.parse("some string");

Intent intent = new Intent();
intent.putExtra("key", uri); //this is ok...builds, runs, works

Bundle args = new Bundle();
args.putParcelable("key", uri); //wont build

我试图给每个片段我做一个uri引用通过Fragment参数填充它的内容。这不是什么大问题,因为我将它作为字符串传递并在Fragment中重新解析它,但是避免这一步会很好。

EDITED: 上面的代码现在有效。

1 个答案:

答案 0 :(得分:2)

如Selvin所述,the Bundle class上没有put()方法。 Uri实施Parcelable;将Uri放入Bundlecall putParcelable()