2011-12-05 67 views
1

我想綁定數據在android上做一個listview,但我無法。Android ListView setAdapter問題

我看到了一些在互聯網上的代碼,它工作,但我只是不知道爲什麼,我不想創建一個新的ListView,我想使用上列出的那個main.xml中

爲什麼我能做到這一點:

ListView lv = new ListView(this); 
     lv.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,PEOPLE)); 
     setContentView(lv); 

但我不能這樣做:

ListView listPessoas = (ListView) findViewById(R.id.listPessoas); 
     ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.id.listPessoas, PESSOAS); 
     listPessoas.setAdapter(adapter); 
+0

爲什麼不呢?怎麼了? – kabuko

回答

0

你所寫的內容是不正確的,在陣列適配器的第二個參數構造函數應該是每個列表項目的簡單佈局不再是您的列表視圖。

如果您的列表項具有自定義複雜佈局,則還需要編寫自定義適配器。

2

這裏的錯誤是您在創建新的ArrayAdapter時。您將通過R.id.listPessoas作爲行視圖用於每行。這是ListView的編號。 adapter正在尋找包含文本視圖的佈局ID,以用於列表的每一行。將R.id.listPessoas更改爲android.R.layout.simple_list_item_1並且您的代碼應該可以工作。 simple_list_item_1佈局只是數據將綁定到的TextView

1

什麼是R.id.pessoas ??

這對我工作得很好:

String[] x = new String[]{"AAA","BBB","CCC"}; 
ListView lv = (ListView) findViewById(R.id.listView1); 
ArrayAdapter<String> test = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,x); 
lv.setAdapter(test);