我一直在关注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
代替。
答案 0 :(得分:6)
如果我没有弄错,那么代码意味着Android在预期颜色值或未能将引用转换为颜色时找到了引用。看看你的代码,这一行很突出
<item name="android:textColor">@style/MyActionBarTitleText</item>
尽管你可以在textColor中有一个引用,但我不确定你可以将它设置为样式。
因此,请尝试直接引用您的颜色
<item name="android:textColor">@color/actionbar_text</item>
答案 1 :(得分:0)
就我而言,我将 com.github.amlcurran.showcaseview:library:+ 更改为特定版本 即 com.github.amlcurran.showcaseview:library:5.4.3 它工作正常。