2015-04-28 27 views
0

我有3個活動A,B,C如何調用方法的內部tabhost另一個活動從當前適配器

活性A具有與當前適配器列表視圖,然後內部適配器我做一個SQLite插入,然後在tabhost活動C還具有與另一適配器的微調列表視圖。在活動C中,我添加了刷新微調器內容的方法,並且還爲其中包含刷新微調器內容的onResume()方法。如果我從活動A的listview適配器插入,spinner沒有得到任何改變(我希望它可以從onResume()獲得更改,因爲有一些代碼來刷新微調內容),但什麼也沒有發生。另外如果我使用下面的代碼調用刷新微調器內容的方法:

Context mycontext; 
((Activity C) mycontext).RefreshSpinner(); 

然後也沒有任何事情發生。那麼我該如何解決這個問題呢?我用兩種方法做到了。提前致謝。

+0

我建議您應該使用FragmentTabHost而不是TabHost和Fragments來代替每個選項卡的contentview的活動。當單擊某個特定選項卡時,您的活動中會有TabClickListnener,以指示該片段刷新使用任何接口的視圖。 –

+1

1.與reload()方法有一個接口。在第三個Activity/Fragment中實現接口。 2.當選項卡點擊檢查第三個選項卡並調用reload()方法。 3.在重載方法中調用您的邏輯重新載入數據 –

+0

但我一直在使用tabhost,所以我需要時間重新構建我的應用程序,你有另一種解決方案嗎?謝謝 –

回答

4

hie 在您的Adapter中,如果您的應用程序所獲取的上下文來自Activity A假設並且您想要刷新Activity C中的Spinner內容,則可以將您的代碼放入Activity的onResume()方法C中,或用於綁定活動C的Spinner的適配器。爲此,您可以創建一個具有所需更改的靜態方法,並在Activity A的Adapter類中首先更新它。然後,更改爲使用某些隨機列表/數據重新加載微調器您在適配器中更新了活動A,可以直接在適用於活動C的適配器或活動C的onResume()方法中使用。否則,您將使用更新後的數據創建一個列表,並將其綁定到適配器以用於活動A,然後將其填充到您的Activity C的onResume()方法將上下文傳遞給它。

+0

已將方法刷新微調器放入Activity的onResume中,但什麼都沒有發生 –

+0

我可以獲取您在方法中放入的代碼以刷新或重新加載微調器嗎? –

相關問題