【问题标题】:getsupportactionbar() returning null/crashing on Gingerbreadgetsupportactionbar() 在 Gingerbread 上返回 null/崩溃
【发布时间】:2013-10-15 06:42:03
【问题描述】:

在尝试向我的应用添加 Gingerbread 支持但失败(所有活动崩溃)后,我编写了一些测试代码来解决问题。

我正在扩展 SherlockFragment 活动。

import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.support.v4.app.ActionBarDrawerToggle;
import android.support.v4.widget.DrawerLayout;
import android.widget.ListView;

import com.actionbarsherlock.app.ActionBar;
import com.actionbarsherlock.app.SherlockFragmentActivity;
public class MainActivity extends SherlockFragmentActivity {

    ActionBar ab;

 @Override
    public void onCreate(Bundle savedInstanceState){

        PreferenceManager.setDefaultValues(this, R.xml.preferences, false);

        SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);

        String themestring = prefs.getString("theme","holo_colour");


        if (themestring.equals("holo_dark_colour")){
            setTheme(R.style.DarkBlueTheme);
        }
        if (themestring.equals("holo_colour")){
            setTheme(R.style.BlueTheme);
        }

        setContentView(R.layout.gtest);

        super.onCreate(savedInstanceState);

        ab = getSupportActionBar(); //crash!

    }

但我一辈子都无法让它停止在 Gingerbread 上崩溃,它在 4.0 + 上运行良好。

动态设置主题:

<style name="BlueTheme" parent="Theme.Sherlock.Light">
    <item name="actionBarStyle">@style/BlueActionBar</item>
    <item name="android:actionBarStyle">@style/BlueActionBar</item>

</style>


<style name="BlueActionBar" parent="Widget.Sherlock.ActionBar">
    <item name="android:background">#33b5e5</item>
    <item name="background">#33b5e5</item>
    <item name="android:titleTextStyle">@style/myTheme.ActionBar.Text</item>
    <item name="titleTextStyle">@style/myTheme.ActionBar.Text</item>

</style>

提前感谢您的帮助!

【问题讨论】:

  • 您是否尝试过查看日志以确切了解问题所在?
  • 你的 logcat 崩溃在哪里?快速发布。

标签: java android android-actionbar actionbarsherlock android-support-library


【解决方案1】:

您正在使用较低版本的 ActionBar 的 Sherlock 库 但是 Android 它自己有一个库可以在较低版本中使用ActionBar 按照本教程link 执行此操作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多