我在做Android应用程序时遇到了障碍。我的问题是我无法为我的标签创建一个onTabListener。我有三个不同名称的标签。问题是它们都有相同的标签计数。在我的代码中我运行了这个:
public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) {
int n = getActionBar().getTabCount();
Toast.makeText(getApplicationContext(), "You have selected: " + n, Toast.LENGTH_LONG).show();
}
这会使一个toast说明选项卡的值(例如: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 :(得分:0)
你所做的就是获得你拥有的标签数量......
您需要tab.getPosition()
才能获得所选内容
public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) {
int n = tab.getPosition();
Toast.makeText(getApplicationContext(), "You have selected: " + n, Toast.LENGTH_LONG).show();
}