小编Mic*_*ael的帖子

使用数组引用作为自定义android视图的XML属性

此问题已解决,请参阅注释以获取详细信息.

我正在扩展现有的Android View并加载一些自定义属性,如使用XML声明自定义Android UI元素定义自定义attrs中所述.

具有布尔和整数格式的属性可以正常工作,但是当我尝试指定对数组资源的引用时,应用程序在启动时崩溃.我在xml资源文件中定义了一个整数数组,我试图将它用作自定义视图的属性.

我可以使用数组资源来设置android Spinner类的"entries"属性而没有错误,所以它似乎是我的实现中的一个问题.logcat消息似乎没有提供有关崩溃的任何具体信息,但我仍然在寻找,所以如果我找到了什么,我会更新.

属性由(在attrs.xml中)声明:

<declare-styleable name="CustomView">
    <attr name="values" format="reference"/>
    <attr name="isActive" format="boolean"/>
</declare-styleable>
Run Code Online (Sandbox Code Playgroud)

该数组定义为(在arrays.xml中):

<integer-array name="nums">
    <item>1</item>
    <item>2</item>
    <item>3</item>
</integer-array>
Run Code Online (Sandbox Code Playgroud)

我通过以下方式引用数组:

<com.test.CustomView cv:values="@array/nums" />
Run Code Online (Sandbox Code Playgroud)

这会导致应用程序立即崩溃.此外,如果我引用颜色资源而不是数组,那么应用程序不会崩溃.有人知道如何处理这个问题吗?

android custom-attributes android-custom-view android-xml

29
推荐指数
3
解决办法
1万
查看次数