这个问题已经解决,详见评论。
我正在扩展一个现有的Android View并加载一些自定义属性,如使用XML声明自定义Android UI元素和定义自定义属性中所述。
布尔和整数格式的属性工作正常,但当我尝试指定对数组资源的引用时,应用程序在启动时崩溃。我已经在一个XML资源文件中定义了一个整数数组,并尝试将其用作自定义视图的属性。
我可以使用数组资源来设置android Spinner类的“entries”属性而不出错,因此似乎是我的实现存在问题。 logcat消息似乎没有提供关于崩溃的具体信息,但我仍在查找,如果我找到了什么,我将进行更新。
这些属性是通过以下方式声明的(在attrs.xml中):
<declare-styleable name="CustomView">
<attr name="values" format="reference"/>
<attr name="isActive" format="boolean"/>
</declare-styleable>
这个数组被定义为(在arrays.xml中):
<integer-array name="nums">
<item>1</item>
<item>2</item>
<item>3</item>
</integer-array>
我是通过以下方式引用数组的:
<com.test.CustomView cv:values="@array/nums" />
这会导致应用程序立即崩溃。此外,如果我引用颜色资源而不是数组,则应用程序不会崩溃。有人知道如何解决这个问题吗?