我有一个带有 3 个选项卡和一个按钮的示例。
public class MainActivity extends SherlockActivity implements TabListener {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
setContentView(R.layout.activity_main);
addTab("1", 0, false);
addTab("2", 1, false);
addTab("3", 2, false);
Button cmdClick = (Button) findViewById(R.id.cmdClick);
cmdClick.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
getSupportActionBar().setSelectedNavigationItem(0);
}
});
}
private void addTab(String tabTitle, int position, boolean setSelected) {
ActionBar.Tab tab = getSupportActionBar().newTab();
tab.setText(tabTitle);
tab.setTabListener(this);
getSupportActionBar().addTab(tab, position, setSelected);
}
@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
Log.d("example", "Selected " + tab.getPosition());
}
@Override
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
Log.d("example", "Unselected " + tab.getPosition());
}
@Override
public void onTabReselected(Tab tab, FragmentTransaction ft) {
Log.d("example", "Reselected " + tab.getPosition());
}
}
当我单击按钮时,它会自动选择第一个选项卡。每当我单击第二个或第三个选项卡时,我想自动选择第一个选项卡。我试过这样
@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
Log.d("example", "Selected " + tab.getPosition());
getSupportActionBar().setSelectedNavigationItem(0);
}
但它不起作用。有任何想法吗?
谢谢。
编辑:
也许这个例子没有任何意义,但这只是我正在尝试做的一个简化例子。我希望默认有 2 个标签,一个标题为“1”,第二个标题为“+”。当用户选择“+”选项卡时,我想创建标题为“2”的新选项卡(在选项卡“1”和“+”之间)并自动选择选项卡“2”。