2014-01-12 27 views
0

我試圖從this MultiChoiceAdapter庫實現this example庫。如何從MultiChoiceAdapter庫更新ListView?

它看起來非常完美。我唯一改變的是ListView高度,在ListView之後加了Button

enter image description here

現在,我與Button想法是更新適配器。爲此,我創建了以下方法:

private void updateData(Bundle savedInstanceState){ 
    List<String> items = Arrays.asList("Item1", "Item2", "Item3", "Item4"); 
    adapter = null; 
    adapter = new ComplexItemLayoutAdapter(savedInstanceState, items); 
    adapter.notifyDataSetChanged(); 
} 

最後,它沒有工作。我試過以下this答案,但它不起作用,因爲這個例子沒有擴展ArrayAdapter

如何更新這種適配器?

非常感謝。

+0

你爲什麼要設置適配器爲null,並作出新的實例? – Hellboy

+0

因爲我不確定如何更新它。我應該如何繼續? –

回答

1

ComplexItemLayoutAdapter創建了一個名爲setData(List<String> items)的方法,並將這些項目設置爲現有數據。

,改變你的方法實現

private void updateData(Bundle savedInstanceState){ 
     List<String> items = Arrays.asList("Item1", "Item2", "Item3", "Item4"); 
     adapter = null; 
     adapter = new ComplexItemLayoutAdapter(savedInstanceState, items); 
     adapter.notifyDataSetChanged(); 
    } 

private void updateData(){ 
     List<String> items = Arrays.asList("Item1", "Item2", "Item3", "Item4"); 
     adapter.setData(items); 
     listView.setAdapter(adapter); 
     adapter.notifyDataSetChanged(); 
    } 
+0

我覺得很蠢。我注意到在示例中我使用的是不同於'ComplexItemLayoutAdapter'的'adaptor'。多麼愚蠢,我以前沒有看到它。謝謝! –