2011-09-02 54 views
0

我有2個標籤tagID「tag01」和「tag02」。我已經明確地設置 焦點第一個選項卡通過調用tabHost.setCurrentTab(0)getLocalActivityManager()。getActivity(tabTag)返回NULL

當我打電話getLocalActivityManager().getActivity("tag01")我得到活動的 對象,但是當我打電話

getLocalActivityManager().getActivity("tag02") then i get NULL. 
//Log.i("tab status: ", getLocalActivityManager().getActivity("tag02")+""); prints null 
//Log.i("tab status: ", getLocalActivityManager().getActivity("tag01")+""); prints [email protected] 

現在,當我再次運行我的應用程序,這次單擊第二個選項卡,然後 getLocalActivityManager().getActivity("tag02")給予對象 (toString()在logcat中)。 因此,再次檢查它後,我發現「只有 第一個選項卡(我已明確設置了焦點 tabHost.setCurrentTab(0))的活動返回非空」,其他選項卡返回null ,除非您不單擊這些選項卡。 當我點擊所有標籤,即至少通過點擊 他們然後getLocalActivityManager().getActivity(anyTag)返回 對象(我正在跟蹤toString())通過所有選項卡。如何從其他 選項卡訪問活動而無需單擊其他選項卡,因爲用戶不知道他/她 必須單擊選項卡。 請給出一些建議。因爲我必須在我的應用程序中訪問 選項卡中的活動。 我希望你能理解我的問題。

謝謝

+1

,如果你不希望他們點擊你爲什麼要使用標籤?爲什麼不使用一項活動? – vallllll

回答

1

該活動未被創建!

,如果你有n標籤你能做到這一點在你的onCreate():

for(int i=n-1;i>0;i--) 
    tabHost.setCurrentTab(i); 

通過這種方式,所顯示的選項卡是第一個選項卡(index爲0)和getLocalActivityManager().getActivity(anyTag)將返回非空

+0

謝謝。有效。只是在上面的代碼 的小修改'for(int i = list.size() - 1; i> 0; i--) tabHost.setCurrentTab(i);' i--而不是i ++:D 謝謝很多 –

0

我可以通過在調用getactivity函數之前設置CurrentTab屬性值來運行for循環來獲取活動實例。

tabHost.setCurrentTab(i); //i index of anytab activity 
getLocalActivityManager().getActivity(anyTag);