我必須標籤,新建和報告。在「報告」選項卡中,我創建了一個動態創建的列表視圖。現在,正在從數據庫中提取列表視圖列表項。因此,每次加載「報告」選項卡時,必須從數據庫中提取列表視圖列表項以防列表項目發生更改。如果我把所有這些東西放在REPORTS選項卡的onCreate中,一切都完美無缺。但是,如果我切換到另一個選項卡並切換回REPORTS選項卡,則會填充列表視圖,但不會反映列表項中數據庫中所做的更改。每當我回到REPORTS選項卡時,我需要從數據庫中獲取當前數據並顯示在列表視圖中。在android應用程序中按需創建標籤內容
所以問題是因爲我在onCreate中進行listview的填充,這隻發生一次。在網上瀏覽後,我發現了TabContentFactory()的東西。那麼,我認爲這會解決我的問題。這是我所做的,
TabHost.TabSpec reportsSpec = tabHost.newTabSpec("reports").setIndicator("Reports")
.setContent(new TabHost.TabContentFactory(){
public View createTabContent(String tag) {
Context context = Main_screen.this;
ls1 = new ListView(Main_screen.this);
//populate m_data from the database
CustomAdapter adapter = new CustomAdapter(context, m_data);
ls1.setAdapter(adapter);
return ls1;}});
tabHost.addTab(reportsSpec);
但這並不能解決我的問題。它看起來像createTabContent內部的代碼僅在創建選項卡時執行,而不是每次切換到「報告」選項卡時執行。
這可以完成嗎?每當我們切換到標籤頁時,我們是否可以創建標籤的內容? 請幫忙。任何幫助是極大的讚賞。
是您的選項卡視圖還是不同的活動?如果視圖,爲什麼不只是做adapter.notifyDataSetChanged() – jkhouw1 2011-05-09 17:28:46
@ jkhouw1:這些選項卡是不同的活動。 .notifyDataSetChanged()沒有任何區別。 – sherry 2011-05-09 18:02:37