2013-06-24 44 views
0

我在執行Android應用程序時遇到了障礙。我的問題是,我無法爲我的選項卡創建onTabListener。我有三個不同名稱的標籤。問題是他們都有相同的指標。在我的代碼我跑這樣的:如何將TabListener設置爲Android中循環中的選項卡

public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) { 
      int n = getActionBar().getTabCount(); 
      Toast.makeText(getApplicationContext(), "You have selected: " + n, Toast.LENGTH_LONG).show(); 
     } 

這使得舉杯說的標籤的值(例如:0,1,2,3),但所有的翼片具有相同的指示器。如果我的所有標籤都具有相同的指標,我無法創建onTabListener。以下是我的完整代碼:

ActionBar.TabListener tabListener = new ActionBar.TabListener() { 
     public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) { 
      int n = getActionBar().getTabCount(); 
      Toast.makeText(getApplicationContext(), "You have selected: " + n, Toast.LENGTH_LONG).show(); 
     } 

     public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction ft) { 
      // hide the given tab 
     } 

     public void onTabReselected(ActionBar.Tab tab, FragmentTransaction ft) { 
      // probably ignore this event 
     } 
    }; 

    // Add 3 tabs, specifying the tab's text and TabListener 
    for (int i = 0; i < 3; i++) { 
     actionBar.addTab(
       actionBar.newTab() 
         .setText(tabTitle[i]) 
         .setTabListener(tabListener)); 
    } 

問題是什麼?有沒有什麼辦法可以使用標籤的標題來創建onTabListener?任何對這個問題的幫助是非常感謝。

回答

0

此代碼是做什麼你告訴它來,通過設置

int n = getActionBar().getTabCount(); 

你永遠只能去打印當前的選項卡數。我不知道爲什麼它會爲您打印不同的值,可能是在您嘗試使用不同的標籤計數的那些測試中。無論哪種方式,更換線路

int n = getActionBar().getTabCount(); 

隨着

String n = tab.getText().toString(); 

這將改變n到所選標籤的名稱,所以它得到正確添加到您的敬酒消息在下一行。

相關問題