为了保持向后兼容性,我创建了一个类来访问操作栏:
import android.app.ActionBar; import android.app.ActionBar.Tab; import android.app.ActionBar.TabListener; import 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的调用,但我不知道如何设置它。我尝试了一些不同的事情但没有成功,任何帮助都非常感激。
答案 0 :(得分:1)
问题是我需要在主要活动中听取onTabSelected的调用,但我不知道如何设置它。我尝试了一些不同的事情但没有成功,任何帮助都非常感激。
定义界面。将接口的实例作为getActionBar()
参数传递给final
(实际上应该命名为initActionBar()
,因为您没有返回操作栏,但是,这只是我... )。在onTab...
对象的各种TabListener
方法中,在您的界面上调用相应的方法。您将无法将ActionBar.Tab
对象传递给接口(因为它的API级别为11+),但在标记和文本属性之间,您应该能够收集值得传递的内容,以便将选项卡标识为活性。