来回更改listview适配器?

时间:2011-04-13 17:09:58

标签: java android sqlite

当用户首次加载listview时,它会从sqlitedb中提取日期列并填充列表。当他们点击日期时,我将该日期放在变量中。然后我想显示一个数组中的项目列表。然后当他们点击其中一个项目时,它再次从sqlitedb中提取数据并填充。

初始列表视图:
12-2010
01-2011
03-2011
04-2011

点击任意日期,设置mDate =点击项目
更改列表视图以显示数组中的内容,然后看起来像

选项1
选项2
备选方案3
选项4

单击选项,设置mOption =单击项目
更改listview以根据db。中的mOption提取数据。

我知道如何让listview从每个源中获取信息,我不清楚,是处理这些适配器开关的最佳方法。有什么建议吗?

2 个答案:

答案 0 :(得分:5)

有两种选择。您可以拥有多个ListView,每个ListView都有自己的适配器,您可以切换它们,或者您可以将多个适配器设置为ListView。我个人会选择选项1,因此您可以将ViewSwitcher放入{{1}}并为转场设置动画。

答案 1 :(得分:0)

如果数据随时可能发生变化,我认为最便宜,最可重复使用的方式是:

public void updateContents (ListView lv, List<String> list) {
    ArrayAdapter<String> myAdapter = lv.getAdapter();
    myAdapter.clear();
    myAdapter.AddAll (list);
    lv.setAdapter(myAdapter);
}

但是,这仅适用于Android 4.0或更高版本。 2.3及更低版本不支持ArrayAdapter.AddAll(object);