2014-01-12 28 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'。多么愚蠢,我以前没有看到它。谢谢! –