2013-06-18 61 views
0

我想要綁定數組列表到我的列表視圖。我無法理解如何將對象值(如其名稱)與列表中顯示的列表項XML值相關聯。構造函數ArrayAdapter <String>(MainActivity.ReadJSONResult,int,List <BeerData>)未定義

試圖從我的數組列表項目添加到列表視圖:

ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this,R.layout.list_item, beerList); 

        lv.setAdapter(arrayAdapter); 

我R.layout.list_item文件看起來像這樣:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal"> 

<TextView android:id="@+id/itemName" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_weight="1"/> 

</LinearLayout> 

我的全主文件可以在這裏查看看我怎麼做我的數組列表:

http://pastebin.com/yV1K8TN1

+0

您正在創建一個 ArrayAdapter,但它傳遞BeerData對象,而不是的字符串。 –

+0

創建的字符串數組並把它傳遞到適配器,或進行自定義適配器 – abhi

回答

1

變化THI S:

ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this,R.layout.list_item, beerList); 

要這樣:

ArrayAdapter<BeerData> arrayAdapter = new ArrayAdapter<BeerData>(MainActivity.this,R.layout.list_item, beerList); 

,並確保BeerData實現toString()方法你是幸福的。如果你的行佈局不是非常簡單,你可能會更好地製作自己的自定義Adapter

+0

我改變了它,並得到這個錯誤: ArrayAdapter (MainActivity.ReadJSONResult,INT,列表)是未定義 並添加了一個toString方法來BeerData其中返回了啤酒的名字。我得到這個錯誤: – Mike

+1

我做了一個編輯,你需要改變這個構造函數來獲得'MainActivity.this',否則'this'是指'ReadJSONResult',ArrayAdapter當然不知道。 –

+0

做了更改,沒有更多的錯誤,但是當我嘗試打開我的應用程序時,它立即關閉: http://pastebin.com/YB6P5tPL – Mike

0

如果你試圖顯示beername到ListView u可以使用一個Iterator接口和迭代列表獲取列表,並通過這arrayadapter

Iterator<BeerData> itr = beerList.iterator(); 
List<String> lst = new ArrayList<String>(); 
while(itr.hasNext()){ 
    lst.add(itr.next().getBeerName()); 
} 

ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this,R.layout.list_item, lst); 
相關問題