下位互換性を維持するために、アクション バーにアクセスするためのクラスを作成しました。
android.app.ActionBar をインポートします。android.app.ActionBar.Tab をインポートします。android.app.ActionBar.TabListener をインポートします。android.app.FragmentTransaction をインポートします。
public class ReflectionBar{
static void getActionBar(Activity a) {
ActionBar bar = a.getActionBar();
bar.addTab(bar.newTab().setText("Tab 1").setTabListener(new TabListener() {
@Override
public void onTabReselected(Tab tab, FragmentTransaction ft) {
// TODO Auto-generated method stub
}
@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
// TODO Auto-generated method stub
}
@Override
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
// TODO Auto-generated method stub
}
}));
bar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM | ActionBar.DISPLAY_USE_LOGO);
bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
bar.setDisplayShowHomeEnabled(true);
// remove the activity title to make space for tabs
bar.setDisplayShowTitleEnabled(false);
return;
}
}
そして、次を使用して Activity クラスで呼び出します。
if (android.os.Build.VERSION.SDK_INT>10){
ReflectionBar bar = new ReflectionBar();
bar.getActionBar(this);
}
問題は、メイン アクティビティで onTabSelected の呼び出しをリッスンする必要があることですが、その設定方法がわかりません。私はいくつかの異なることを試しましたが、成功しませんでした。