从自定义视图Java代码访问AttributeSet
我有一个自定义视图,其中包含几个使用onDraw绘制的文本字段。“我的活动”中有多个视图实例。这些文本字段的数据存储在许多字符串和整数数组中(我将其存储在数组中,因为我将在应用程序的其他部分使用这些数据) 我的计划是在XML中使用某种自定义属性来传递单个整数,然后在Java端访问它并将其用作数组的索引。因此,例如,来自从自定义视图Java代码访问AttributeSet,java,android,Java,Android,我有一个自定义视图,其中包含几个使用onDraw绘制的文本字段。“我的活动”中有多个视图实例。这些文本字段的数据存储在许多字符串和整数数组中(我将其存储在数组中,因为我将在应用程序的其他部分使用这些数据) 我的计划是在XML中使用某种自定义属性来传递单个整数,然后在Java端访问它并将其用作数组的索引。因此,例如,来自array1[0]、array2[0]和array3[0]的文本将在视图中与XML中的mynamespace:customattribute=“0”一起使用 然而,在研究了四个小时
array1[0]
、array2[0]
和array3[0]
的文本将在视图中与XML中的mynamespace:customattribute=“0”
一起使用
然而,在研究了四个小时的大部分时间后,我得出结论,自定义视图上的自定义属性基本上是不可能的。我能找到的唯一信息要么只是引用XML,而不是如何通过代码访问它,要么它确实解释了代码,但引用了SDK的旧版本
这让我抓狂。如果有人能给我指出正确的方向,或者如果你知道做我想做的事情的另一种方法,我将永远感激
编辑:我已经开始尝试使用android:tag
。。。如果我想办法解决这个问题,我会发布我的答案
另一个编辑:我还不能回答我自己的问题,所以我会在这里回答。因此,我在XML中添加了一个标记
,并使用getTag()
访问它。我将其转换为字符串,并从中解析整数
我不敢相信这有多简单。对不起,这个毫无意义的问题……一点也不可能。您的属性需要在values/attr.xml中定义,您可以通过自定义视图的构造函数访问它们:
public MyCustomClass(Context context, AttributeSet attrs) {
...
// Get an attribute
X var = attrs.getX(...);
}
如果有疑问,请查看Android源代码,如View.java或TextView.java-google“View.java netmite”;) 啊哈!这看起来很有希望。我也要试试。噢!这正是我想要的,非常感谢!