有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Android为Gingebrad提供样式资源

我在为姜饼或旧版本的安卓提供不同风格的资源时遇到了一些麻烦

我定义了两种不同的样式页面。普通样式和样式-v11。 对于安卓 3.0及以上版本,一切正常。我的问题是,当我试着吃姜饼时,它忽略了风格的变化

风格:

<resources xmlns:安卓="http://schemas.安卓.com/apk/res/安卓">
 <!--
       Styles for v1 to v10
    -->
    <style name="AppBaseTheme" parent="安卓:Theme.Light"></style>

    <style name="DarkTheme" parent="安卓:Theme"></style>

    <style name="Performance" parent="安卓:Theme"></style>

    <style name="LightTheme" parent="安卓:Theme.Light"></style>

    <style name="ColorsTheme" parent="安卓:Theme.Holo"></style>

    <style name="OsuTheme" parent="安卓:Theme.Light"></style>

    <style name="BrazilTheme" parent="安卓:Theme"></style>

    <style name="NeonTheme" parent="安卓:Theme">
        <item name="安卓:windowBackground">@安卓:color/black</item>
    </style>
</resources>

样式-v11:

<resources xmlns:安卓="http://schemas.安卓.com/apk/res/安卓">  
    <!--
        Styles v11
    -->
    <style name="AppBaseTheme" parent="安卓:Theme.Light"></style>

    <style name="DarkTheme" parent="安卓:Theme.Holo"></style>

    <style name="Performance" parent="安卓:Theme.Holo"></style>

    <style name="LightTheme" parent="安卓:Theme.Holo.Light"></style>

    <style name="ColorsTheme" parent="安卓:Theme.Holo"></style>

    <style name="OsuTheme" parent="安卓:Theme.Holo.Light"></style>

    <style name="BrazilTheme" parent="安卓:Theme.Holo"></style>

    <style name="NeonTheme" parent="安卓:Theme.Holo">
        <item name="安卓:windowBackground">@安卓:color/black</item>
    </style>

</resources>

我的应用程序有一个设置来检查哪个主题是活动的

switch (ThemesActivity.newTheme) {
    case ThemesActivity.THEME_DARK:
        setTheme(R.style.DarkTheme);
        setContentView(R.layout.activity_main_dark);
        break;
    case ThemesActivity.THEME_LIGHT:
        setTheme(R.style.LightTheme);
        setContentView(R.layout.activity_main_light);
        break;
    case ThemesActivity.THEME_COLORS:
        setTheme(R.style.ColorsTheme);
        setContentView(R.layout.activity_main_colors);
        break;
    case ThemesActivity.THEME_NEON:
        setTheme(R.style.NeonTheme);
        setContentView(R.layout.activity_main_neon);
        break;
    case ThemesActivity.THEME_PERF:
        setTheme(R.style.Performance);
        setContentView(R.layout.activity_main_performance);
        break;
    case ThemesActivity.THEME_OSU:
        setTheme(R.style.OsuTheme);
        setContentView(R.layout.activity_main_osu);
        break;
    case ThemesActivity.THEME_BRAZIL:
        setTheme(R.style.BrazilTheme);
        setContentView(R.layout.activity_main_brazil);
        break;
    default:
        setTheme(R.style.DarkTheme);
        setContentView(R.layout.activity_main_dark);
        break;
    }

问题是,姜饼中的哪个主题是活跃的并不重要!始终加载默认应用程序主题:(

我不知道到底出了什么问题,也不知道为什么主题更改对旧版本不起作用

多谢各位

编辑:

我还尝试使用:

 <style name="OsuTheme" parent="@安卓:style/Theme.Light"></style>

但仍然是一样的:(主题在运行时不会更改,只有在清单上设置主题时才会更改

在清单上,主题可以工作,问题是当我试图在运行时更改它时


共 (1) 个答案

  1. # 1 楼答案

    <style name="LightTheme" parent="android:Theme.Light"></style>
    
    <style name="ColorsTheme" parent="android:Theme.Holo"></style>
    

    主要的问题是姜饼没有来自您扩展的主题的样式资源。这就是它加载默认资源的原因