我有一个List weirdList,它包含从类方法返回的List。但是,我希望它被转换为一个ArrayList funkyArrayList,我可以使用它来填充我的ListView。
CrazyObject有methodX.toString,所以我尝试了这个:
weirdList = CrazyObject.findAll(); // returns List<CrazyObject>
for(CrazyObject c : weirdList) {
funkyArrayList.add(c.methodX.toString);
}
如果weirdList为空,我会自己添加一个字符串:
if(weirdList.isEmpty) {
funkyArrayList.add("nothing there");
}
然而,应用程序因没有原因而崩溃了。我究竟做错了什么? 我正在使用doInBackground() - 它应该是showstopper。
答案 0 :(得分:1)
将weirdList
列为Object
:
private List<Object> weirdList = ArrayList<Object>();
然后,您可以使用您喜欢的任何对象的数组列表对其进行初始化:
weirdList = new ArrayList<Object>(CrazyObject.findAll()); //CrazyObject.findAll() returns ArrayList<CrazyObject>
以后用于演员:
CrazyObject c = (CrazyObject)weirdList.get(index);
或循环:
for(Object o : weirdList) {
CrazyObject c = (CrazyObject)o;
funkyArrayList.add(c.methodX().toString());
}