ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java.lang.UnsupportedOperationException:无法转换为color:type = 0x1

2019-06-09 19:12:31  阅读:279  来源: 互联网

标签:java android xml android-styles


我一直在关注Android开发人员培训的myfirstapp指南,但我遇到了they do not properly explain how to define colors.的问题

他们提到要创建自定义主题,您可以声明文本颜色:

的themes.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <!-- the theme applied to the application or activity -->
    <style name="CustomActionBarTheme"
        parent="@android:style/Theme.Holo.Light.DarkActionBar">
        <item name="android:actionBarStyle">@style/MyActionBar</item>
        <item name="android:textColor">@style/MyActionBarTitleText</item>
        <item name="android:actionBarTabTextStyle">@style/MyActionBarTabText</item>
    </style>

    <!-- ActionBar styles -->
    <style name="MyActionBar"
        parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse">
        <item name="android:background">@drawable/actionbar_background</item>
    </style>

    <!-- ActionBar title text -->
    <style name="MyActionBarTitleText"
        parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Title">
        <item name="android:textColor">@color/actionbar_text</item>
    </style>

    <!-- ActionBar tabs text styles -->
    <style name="MyActionBarTabText"
        parent="@android:style/Widget.Holo.ActionBar.TabText">
        <item name="android:textColor">@color/actionbar_text</item>
    </style>
</resources>

他们没有提到如何指定@ color / actionbar_text,但常识(以及一些谷歌搜索)表示值包中需要colors.xml文件:

colors.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="actionbar_text">#ff355689</color>
</resources>

但是,在尝试运行应用程序时,它会出错:

Process: com.example.myfirstapp, PID: 25997
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.myfirstapp/com.example.myfirstapp.MainActivity}: java.lang.UnsupportedOperationException: Can't convert to color: type=0x1

如果我从colors.xml中删除该行,则在找不到颜色引用时会出错.我相对肯定我的代码是正确的,任何人都可以看到任何错误?

编辑

我只想注意,我实际上对themes.xml文件使用略有不同的语法,因为教程不会编译.本教程使用@ style / Widget.Holo.ActionBar.TabText,我发现它实际上是android的属性,所以我需要使用@android:style / Widget.Holo.ActionBar.TabText.

解决方法:

如果我没有弄错,那么代码意味着Android在预期颜色值或未能将引用转换为颜色时找到了引用.看看你的代码,这条线脱颖而出

<item name="android:textColor">@style/MyActionBarTitleText</item>

尽管你可以在textColor中有一个引用,但我不确定你可以将它设置为样式.

因此,请尝试直接引用您的颜色

<item name="android:textColor">@color/actionbar_text</item>

标签:java,android,xml,android-styles
来源: https://codeday.me/bug/20190609/1206821.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有