2012-04-13 30 views
0

在Android應用程序中,我使用由4個選項卡組成的TabBar。我有一個要求獲得4個選項卡的所有對象。如何能實現這一點,有什麼建議。如何在Android中獲取TabBar選項卡的對象?

+0

你是指什麼物體? – 2012-04-13 13:34:45

+0

嗨謝爾蓋Glotov,我爲每個標籤附加了一個活動,所以對於所有四個標籤我有四個activites.I要檢索這些對象,以便我可以調用活動類 – user1331691 2012-04-13 13:39:09

回答

0
 TabHost.TabSpec spec; // This is the Object of TabBar 
     Intent intent; 

     // Single Activity 
     intent = new Intent().setClass(this, Home.class); 
     spec = tabHost.newTabSpec(getResources().getString(R.string.Home)).setIndicator(getResources().getString(R.string.Home),res.getDrawable(R.drawable.home)).setContent(intent); 
     tabHost.addTab(spec); 

現在你可以添加不同的標籤這樣

+0

Dev中的方法,上面的代碼是用於添加選項卡。在上面你已經使用了名爲Home.Here的Activity,我想在Tab bar類中檢索Home對象。 – user1331691 2012-04-13 13:46:27

0

我能想到的兩個明顯的途徑:

  1. 使用功能的LocalActivityManager(這應該是酒店的每ActivityGroup,因此也TabActivity)提供檢索活動。您可以通過調用getCurrentActivity()或通過傳入用作TabSpecgetActivity(String id)的一部分的標籤來獲取當前選擇的Activity
  2. 根據活動構建您自己的標籤本地映射並將其用於查找;例如Map<String, Activity>

在這兩種情況下,您都需要將通用Activity轉換爲您自己的實現,以訪問您自己的方法。如果這些活動都應該實現類似的方法,我建議你使用一個聲明這些方法的接口,並使用該接口進行投射/映射;例如Map<String, ITabbedActivity>

或者,您可以簡單地使用每個Activity的一個成員變量跟蹤不同的活動。這樣你可以避免投射。不是說如果你處理的是四個以上的標籤,我不會推薦採用這種方法。

相關問題