Android tabHost下的活动中的getActionBar()为null
我使用tabHost创建了一个选项卡,每个选项卡下都有一个活动: 主课Android tabHost下的活动中的getActionBar()为null,android,Android,我使用tabHost创建了一个选项卡,每个选项卡下都有一个活动: 主课 TabHost tabHost = getTabHost(); this.setNewTab(this, tabHost, "tab1", R.drawable.icon_blackberry_config, new Intent().setClass(this, HiepActivity.class)); this.setNewTab(this, tabHost, "tab2", R.drawable.
TabHost tabHost = getTabHost();
this.setNewTab(this, tabHost, "tab1", R.drawable.icon_blackberry_config, new Intent().setClass(this, HiepActivity.class));
this.setNewTab(this, tabHost, "tab2", R.drawable.icon_windows_config,new Intent().setClass(this, BlackBerryActivity.class));
this.setNewTab(this, tabHost, "tab3", R.drawable.icon_apple_config,new Intent().setClass(this, AppleActivity.class));
this.setNewTab(this, tabHost, "tab4", R.drawable.icon_android_config,new Intent().setClass(this, AndroidActivity.class));
tabHost.getTabWidget().setStripEnabled(false);
tabHost.setCurrentTab(2);
}
private void setNewTab(Context context, TabHost tabHost, String tag, int icon, Intent in ){
TabHost.TabSpec tabSpec = tabHost.newTabSpec(tag);
tabSpec.setIndicator(getTabIndicator(tabHost.getContext(), icon)); // new function to inject our own tab layout
tabSpec.setContent(in);
tabHost.addTab(tabSpec);
}
private View getTabIndicator(Context context, int icon) {
View view = LayoutInflater.from(context).inflate(R.layout.tab_layout, null);
ImageView iv = (ImageView) view.findViewById(R.id.imageView1);
iv.setImageResource(icon);
return view;
}
在HiepActivity下,我想显示一个带有片段的滑动选项卡:
public class HiepActivity extends Activity implements ActionBar.TabListener {
// Declaring our tabs and the corresponding fragments.
ActionBar.Tab bmwTab, fordTab, toyotaTab;
Fragment bmwFragmentTab = new TopRatedFragment();
Fragment toyotaFragmentTab = new GamesFragment();
Fragment fordFragmentTab = new TopRatedFragment();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_ACTION_BAR);
setContentView(R.layout.hieptab);
ActionBar actionBar = getActionBar();
Log.v("error", actionBar+"");
但在HiepActivity中调用getActionBar()时始终为null。
我只想在tabhost活动(MainActivity)下有一个swipetab(HiepActivity)。为什么以及如何解决这个问题?非常感谢。
更新:
我发现这是因为主活动是使用actionbar,所以HiepActivity没有actionbar。所以不可能解决问题。非常感谢。问题是在当前类的上下文中尝试使用类上下文。getActionBar()问题是在当前类的上下文中尝试使用类上下文。getActionBar()getActionBar未在应用程序中解析,请认为可能未在清单中使用正确的主题,如果可能,还有一件事请使用AppcompatActivity。我已尝试更改主题,但仍然存在错误。主要问题是,您还应使用getSupportActionBar()getActionBar未在应用程序中解析,think可能没有在manifest中使用正确的主题,如果可能的话,还有一件事是使用AppcompatActivity。我已经尝试更改主题,但仍然存在错误主要是您还应该使用getSupportActionBar(),我想是的,MainActivity是使用actionbar的,所以MainActivity中tabhost中的活动不能使用actionbar。但是如何解决这个问题呢?你可以试试:this.getActionBar()我想是的,MainActivity是使用actionbar的,所以MainActivity中tabhost中的活动不能使用actionbar。但是如何解决这个问题呢?你可以试试:this.getActionBar()