我使用以下构造函数创建了一个自定义 View 子类:
public MyCustomView(Context context, AttributeSet attrs)
{
super(context, attrs);
// get custom "thingy" attribute specified in XML
int thingy = attrs.getAttributeIntValue(MY_NAMESPACE, "thingy", 0);
//rest of constructor
...
}
可以看出,它从其 XML 属性中获取了一个自定义的“thingy”属性。这工作得很好,到目前为止我没有遇到任何问题。那么,为什么 Google 会告诉您在declare-styleable
in res/values/attrs.xml
(在此处讨论)context.getTheme().obtainStyledAttributes()
中定义自定义 View 的 XML 属性并通过调用(在此处讨论)来应用它们?