Dav*_*Sav 10 android parcelable
我的大部分Parcelable都在工作; 像out.writeString,out.writeInt,in.readString()等简单的东西工作得很好.
我的问题是当我想要Parcel一个Array/List/ArrayList(我已经尝试过所有这些).
我目前正在尝试:
List<String>
Run Code Online (Sandbox Code Playgroud)
和
out.writeStringList()
Run Code Online (Sandbox Code Playgroud)
工作良好.
Eclipse建议有一个
in.readStringList(List<String> list)
Run Code Online (Sandbox Code Playgroud)
重新读取这些数据.但它不适合我.
我们应该把什么放入()?
我没有尝试任何东西,结果是'添加参数匹配......'我尝试过null,引用getter等等; 所有返回错误'无法从void转换为List'
MH.*_*MH. 22
'无法从void转换为List'
从这个错误,它听起来就像你想的方法的返回类型分配readStringList(...)给一个List<T>变量.换句话说:你是否可能写下这样的东西:
List<String> stringList = in.readStringList(stringList)
Run Code Online (Sandbox Code Playgroud)
?readStringList(...)返回一个void,这可能是Eclipse抱怨的内容.实际上,您不应该尝试从void方法获取返回类型 - 在这种情况下,您需要提供应将结果指定为参数的变量.因此,这应该足够了:
List<String> stringList = null;
in.readStringList(stringList)
Run Code Online (Sandbox Code Playgroud)
顺便说一句,如果你要实现Parcelable以便能够在活动之间传递相对简单的数据对象(使用Intents),请考虑使用Serializable接口 - 这将节省大量的工作,特别是如果你需要对多个对象重复相同的过程.
Vit*_*nko 20
写入包裹:
out.writeStringList(yourStringList);
Run Code Online (Sandbox Code Playgroud)
从包裹中读取
List<String> newList = in.createStringArrayList();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12823 次 |
| 最近记录: |