2014-10-04 93 views
0

我有一個列表weirdList,它包含從類方法返回的List。但是,我希望它被轉換成一個ArrayList funkyArrayList,我可以用它來填充我的ListView。將自定義對象列表轉換爲ArrayList

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

告訴我們完整的代碼... – Alboz 2014-10-04 21:02:40

+0

告訴我們完整的代碼。 – Alboz 2014-10-04 21:52:34

+1

toString之後沒有括號?這將添加toString方法本身,而不是調用它返回的值。 – gmcgath 2014-10-04 22:30:40

回答

1

製作weirdListObject的List:

weirdList = new ArrayList<Object>(CrazyObject.findAll()); //CrazyObject.findAll() returns ArrayList<CrazyObject> 

後來用石膏使用它:

private List<Object> weirdList = ArrayList<Object>(); 

然後,你可以用任何你喜歡的對象的數組列表初始化

CrazyObject c = (CrazyObject)weirdList.get(index); 

或適合您的循環:

for(Object o : weirdList) { 
    CrazyObject c = (CrazyObject)o; 
    funkyArrayList.add(c.methodX().toString()); 
} 
+0

我知道我必須做某種投射!謝謝! – MiningSam 2014-10-05 08:26:08