3つのタブと1つのボタンの例があります。
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());
}
}
ボタンをクリックすると、最初のタブが自動的に選択されます。2番目または3番目のタブをクリックするたびに、最初のタブを自動的に選択したいと思います。私はこのように試しました
@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
Log.d("example", "Selected " + tab.getPosition());
getSupportActionBar().setSelectedNavigationItem(0);
}
しかし、それは機能しません。何か案は?
ありがとう。
編集:
この例には意味がないかもしれませんが、これは私がやろうとしていることの単純化された例にすぎません。デフォルトで2つのタブが必要です。1つはタイトル「1」、もう1つはタイトル「+」です。ユーザーが「+」タブを選択すると、タイトルが「2」の新しいタブ(タブ「1」と「+」の間)を作成し、タブ「2」を自動的に選択したいと思います。