我在我的应用程序中使用Actionbar,它在api 22下工作正常。
使用android.support.v4.app.FragmentActivity
使用下面的操作栏代码
public void initActionBar() {
actionBar = getActionBar();
actionBar.setDisplayShowTitleEnabled(true);
actionBar.setDisplayHomeAsUpEnabled(false);
actionBar.setDisplayUseLogoEnabled(false);
actionBar.setHomeButtonEnabled(true);
actionBar.setTitle("Rides");
actionBar.setIcon(R.drawable.menu);
actionBar.setBackgroundDrawable(newColorDrawable(getResources().getColor(R.color.orange)));
actionBar.setDisplayShowCustomEnabled(true);
}
style.xml中的App主题
<!-- Application theme. -->
<style name="AppTheme" parent="android:Theme.Holo.Light">
<item name="android:activatedBackgroundIndicator">@drawable/list_activated_background</item>
<item name="android:typeface">serif</item>
<item name="android:actionBarSize">55dip</item>
</style>
运行时相同在版本22中获取以下错误
LogCat错误
引起:java.lang.NullPointerException:尝试在空对象引用上调用虚方法'void android.app.ActionBar.setDisplayShowTitleEnabled(boolean)' 在com.holachef.android.chef_android.activity.HomeActivity.initActionBar(HomeActivity.java:160) 在com.holachef.android.chef_android.activity.HomeActivity.onCreate(HomeActivity.java:62) 在android.app.Activity.performCreate(Activity.java:5953) 在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1128) 在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2267) 在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2388) 在android.app.ActivityThread.access $ 800(ActivityThread.java:148) 在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1292) 在android.os.Handler.dispatchMessage(Handler.java:102) 在android.os.Looper.loop(Looper.java:135)
使用android studio这个,eclips中的相同代码在22版上成功运行,是与android studio有关的问题。
任何帮助将不胜感激。感谢。
答案 0 :(得分:1)
您必须扩展AppCompatActivity而不是FragmentActivity才能使Actionbar包含片段。
如果您正在使用v7 appcompat库,那么您的活动应该扩展 AppCompatActivity ,这是FragmentActivity的子类(有关更多信息,请参阅添加操作栏)。
你仍然可以试试这个,
ActionBar actionBar = getSupportActionBar();
您可以在此处找到更多细节。 http://developer.android.com/training/basics/fragments/creating.html
请切换到Material Theme,而不是使用旧的Holo Theme。
答案 1 :(得分:0)