嗨我有一個應用程序,它在登錄後加載一個主要活動,其中包含一個帶有3個包含列表視圖的選項卡的tabhost。每個選項卡都通過sqlite +自定義適配器進行填充。數據庫最初通過xml數據填充(sync_d異步到sqlite數據庫)。刷新從父活動選項卡列表視圖
我的問題:我想允許手動同步sqlite數據庫與XML數據,然後更新當前選項卡列表視圖。我有異步線程正常工作,以執行數據庫的後臺更新。我無法弄清楚的是如何強制刷新當前選項卡的列表視圖。問題是我不知道如何從父活動訪問tabhost內的子活動。我很確定notifyDataSetChanged()是我需要的,但我不知道如何訪問選項卡的活動>適配器來做到這一點。我如何訪問一個子活動適配器以調用notifyDataSetChanged()?父(含)活動具有將用於刷新tabhost的列表視圖的按鈕。
替代:我可以嘗試從我的後臺線程的onPostExecute()回調廣播一個意圖。即,當它完成更新數據庫與XML數據我有我的標籤接收廣播並觸發它通過notifyDataSetChanged()刷新...但這可能不是如何廣播/接收意圖的設計是這樣嗎?即在活動和包含選項卡的列表視圖活動之間進行通信?
這是我在堆棧溢出中的第二篇文章,希望我的解釋清楚。感謝任何幫助或建議,您可以提供
EDIT(16-JAN-2012): 是一個很長一段時間,因爲我曾在這個問題上。我原本使用廣播意圖並將其用於兒童活動的解決方案。但我從其他許多人那裏得到了建議(你也應該這樣做)!而是停止使用標籤內的活動。我現在在選項卡中使用視圖。這工作更好,更清潔。
除了代碼變得過於繁瑣之外,當在活動之間進行旋轉時,我也會變得奇怪的「數據庫未關閉」類型錯誤。在選項卡中的視圖而不是活動修復了許多問題,我相信它在資源使用上更好。
但你是如何刷新標籤視圖內的列表視圖? – Shrikant 2012-11-05 10:10:36