2011-04-13 49 views
0

當用戶第一次加載列表視圖時,它從sqlitedb中提取日期列並填充列表。當他們點擊某個日期時,我將該日期放入一個變量中。然後我想顯示一個數組中的項目列表。然後,當他們點擊其中一個項目時,它再次從sqlitedb中提取數據並填充。來回更改listview適配器?

所以初始列表視圖:
12-2010
01-2011
03-2011
04-2011

點擊任何日期,設置mDate =單擊項目
改變列表視圖中顯示什麼在一個數組,那麼它看起來的樣子

選項1
選項2
選項3
選項4

點擊選項,設置mOption =點擊項目
變化的ListView基於從DB mOption提取數據。

我知道如何從列表視圖中獲取來自每個源的信息,我不清楚的是處理這些適配器開關的最佳方法。有什麼建議麼?

+0

該數據是否修復?即在應用程序的生命週期中您有三組靜態數據,或者數據庫可能隨時發生變化? – Aleadam 2011-04-13 22:16:30

+0

我有同樣的問題:是否更好一個listadapter與兩個不同的數據集有兩個適配器。也可以選擇在自定義列表視圖適配器中使用這兩組數據,並使適配器具有切換功能(在Android中執行刷新/無效/無論它們是什麼) – 2012-10-04 15:52:57

回答

5

有兩種選擇。您可以有多個ListView,每個都有自己的適配器,您可以在它們之間切換,也可以有多個適配器,您只需將其設置爲ListView即可。就我個人而言,我會選擇1,所以你可以把ListView s在ViewSwitcher和動畫的過渡。

0

如果數據隨時可能發生變化,我相信最廉價和最可重複使用的方法是使用:

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

但是,在安卓4.0或更高版本這僅適用。 2.3和更低版本不支持ArrayAdapter.AddAll(object);