我有一個TabActivity,並將有3或4個選項卡。更新標籤在Android TabHost中的活動選項卡
在TabA中,我想要一個ExpandableListView,它將列出產品。我希望TabC充當一種「購物車」,可能帶有一個ListView本身。
有沒有一種方法與活動中的TabHost進行交互?我希望能夠點擊TabA中的一個按鈕並更新並切換到TabC。這可能嗎?我可以讓Tab的活動調用它的父母方法嗎?
我有一個TabActivity,並將有3或4個選項卡。更新標籤在Android TabHost中的活動選項卡
在TabA中,我想要一個ExpandableListView,它將列出產品。我希望TabC充當一種「購物車」,可能帶有一個ListView本身。
有沒有一種方法與活動中的TabHost進行交互?我希望能夠點擊TabA中的一個按鈕並更新並切換到TabC。這可能嗎?我可以讓Tab的活動調用它的父母方法嗎?
您可以從TabActivity調用getTabHost,請參閱public TabHost getTabHost()。
請參閱Tabhost for setCurrentTab,public void setCurrentTab(int index)。
如果你實現你的標籤作爲視圖,而不是單獨的活動,這會更簡單,運行更快,佔用更少的內存,併成爲更好的解決方案恕我直言。
話雖這麼說,在選項卡中Activity
,叫getParent()
得到的TabActivity
。然後,你可以使用disretrospect指出的方法。
如何獲得該活動#3中的視圖 – Mikey 2012-07-02 09:52:30
嘗試使用此代碼到一個標籤中改變活性:
TabActivity parent = (TabActivity) getParent();
TabHost tabhost = parent.getTabHost();
tabhost.setCurrentTab(0);
1爲使用getParent()末端 - 雖然我不理解使用視圖而不是活動的建議。我更喜歡分離生命週期的活動,也喜歡分離屬於每個標籤的代碼。 – FrVaBe 2011-02-23 13:57:13
@ K。 Claszen:「分開生命週期」 - 他們的生命週期不是分開的。 「也分離屬於每個標籤的代碼」 - 以Java類文件形式的代碼分離已經存在了15年。您不需要爲此使用單獨的活動。 – CommonsWare 2011-02-23 14:05:08
感謝您的回覆。正如我所觀察到的,僅當選擇了關聯的選項卡時纔會調用活動生命週期方法(onCreate等)。我希望能夠在選項卡中擴展諸如「ExpandableListActivity」的提供的活動。但是,這兩種可能性都是根據需求提供的,並且根據需要而定,所以我只是想知道是否可以提供一般性建議。 – FrVaBe 2011-02-23 14:26:49