从自定义View Java代码访问AttributeSet

时间:2011-07-28 11:49:47

标签: java android

我有一个自定义视图,其中包含使用onDraw在其上绘制的多个文本字段。我的活动中有多个View视图实例。这些文本字段的数据存储在许多字符串和整数数组中(我将其存储在数组中,因为我将使用应用程序其他部分中的数据)。

我的计划是在XML中使用某种自定义属性来传递单个整数,然后在Java端访问它并将其用作数组的索引。例如,来自array1[0]array2[0]array3[0]的文本将在视图中使用其XML中的mynamespace:customattribute="0"

然而,在研究了四个小时的大部分时间之后,我得出结论,自定义视图上的自定义属性基本上是不可能的。我能够找到的唯一信息或者只引用XML,而不是如何通过代码访问它,或者它确实解释了代码,但是引用了旧版本的SDK。

这让我很沮丧。如果有人能指出我正确的方向,或者如果你知道我正在做的事情的另一种方法,我会永远感激。

编辑:我已经开始尝试使用android:tag做某事......如果我想出办法,我会发布我的答案。

另一个编辑:我还不能回答我自己的问题,所以我会在这里做。所以我在XML中添加了tag并使用getTag()访问它。我将其转换为String,并从中解析整数。

我不能相信这是多么简单。抱歉这个毫无意义的问题......

1 个答案:

答案 0 :(得分:2)

根本不可能。您的属性需要在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”;)