2011-07-07 36 views
0

請考慮以下代碼。將項目添加到ArrayAdapter的正確方法

List<String> list = new ArrayList<String>(); 
ArrayAdapter<String> adapter = new ArrayAdapter<String>(context, resource, textViewResourceId, list); 

// Method 1 : Add an item. 
adapter.add("ITEM1"); 

// Method 2 : Add an item 
list.add("ITEM2"); 

我想知道,這是將項目添加到ArrayAdapter的正確方法?在我看來,這兩種方法都能正常工作。

回答

1

如果您已將ArrayAdapter附加到AdapterView,則方法1會更新關聯的AdapterView。方法2沒有,要求你在ArrayAdapter上撥打notifyDataSetChanged()

通常,您在創建ArrayAdapter之前填充ArrayList,然後使用方法1稍後動態添加新條目(例如,基於用戶數據條目)。

+0

+1回答得好 – 2011-07-07 15:02:15

0

這就是我所做的,尤其是我的搜索結果頁面 - 它隨着用戶向下滾動(列表更改)而增長。

我會保持字符串的本地ArrayList的是全球性的類, 初始化適配器(也本地和全球), 有指定的方法改變字符串的ArrayList中, 然後調用adapter.notifyDataSetChanged( );

這不僅會更新您的列表並更新適配器以同步工作。

希望這有助於

最好, -serkan

相關問題