2013-06-24 45 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到所选标签的名称,所以它得到正确添加到您的敬酒消息在下一行。

相关问题