在Parcelable </string>中列出<string> readStringArray

时间:2012-02-23 02:12:40

标签: android parcelable

我的大部分Parcelable都在工作; 简单的东西,比如out.writeString,out.writeInt,in.readString()等都运行得很好。

我的问题是当我想要包裹数组/列表/数组列表时(我已经尝试了所有这些)。

我目前正在尝试:

List<String>

out.writeStringList()

工作正常。

Eclipse建议有一个

in.readStringList(List<String> list)

重新读取数据。但它并没有为我做这件事。

我们应该把什么放入()?

我没有尝试过,结果是'添加参数来匹配......' 我尝试过null,参考吸气剂等等;所有返回错误'无法从void转换为List'

2 个答案:

答案 0 :(得分:22)

  

'无法从void转换为List'

从该错误中听起来您正试图将方法readStringList(...)的返回类型分配给List<T>变量。换句话说:你是在写一些类似的东西:

List<String> stringList = in.readStringList(stringList)

readStringList(...)返回一个void,因此可能是Eclipse抱怨的内容。实际应该尝试从void方法获取返回类型 - 在这种情况下,您需要提供应将结果指定为参数的变量。因此,这应该足够了:

List<String> stringList = null;
in.readStringList(stringList)

顺便说一下,如果你要实现Parcelable以便能够在活动之间传递相对简单的数据对象(使用Intents),那么考虑使用Serializable接口 - 这将节省大量的工作,特别是如果你需要为多个对象重复相同的过程。

答案 1 :(得分:19)

写入包裹:

out.writeStringList(yourStringList);

从包裹中读取

List<String> newList = in.createStringArrayList();