2011-05-13 81 views
1

請看如下的代碼片段:Android的標籤按鈕:柄敲擊/點擊事件

// Create an Intent to launch an Activity for the tab (to be reused) 
intent = new Intent().setClass(this, HomeTabActivity.class); 

// Initialize a TabSpec for each tab and add it to the TabHost 
spec = tabHost.newTabSpec("home").setIndicator("Home", 
       res.getDrawable(R.drawable.ic_tab_home)).setContent(intent); 
tabHost.addTab(spec); 

現在,當我點擊一個選項卡按鈕,它顯示了相應的活動,但後來我再次單擊該按鈕,我想也檢測此點擊,即使該標籤實際上是「當前」或活動選項卡,是否有無論如何這樣做?我在spec中沒有找到任何設置的偵聽器方法。

+0

我能理解你爲什麼要這樣做。在iOS中,您有類似的行爲,它的工作非常直觀:如果其中一個選項卡包含導航控制器,則點擊已選擇的選項卡按鈕將導航回到其根級別。 – 2011-12-11 22:21:40

回答

1

嗯,我不認爲有什麼這樣做是作爲選項卡控件的一部分。有幾件事你可以嘗試。

  1. 覆蓋HomeTabActivity上的onNewIntent方法,看看他們是否在每次點擊標籤時發送意圖,但我懷疑它。
  2. 你可以嘗試把一個監聽器
0

呼叫的下方,使用setListener(TabWidgetActivity)方法TabHost由getCurrentTabView方法返回的圖。在創建制表符之前調用它。

void setListener(final TabActivity tabActivity) 
    { 
     tabActivity.getTabHost().setOnTabChangedListener(new OnTabChangeListener()   { 

      public void onTabChanged(String tabId) 
      { 

      } 
     }); 

     tabActivity.getTabHost().setOnLongClickListener(new OnLongClickListener() {  

      public boolean onLongClick(View v) 
      { 

       return false; 
      } 
     }); 
    }