我希望我的ViewA和ViewB都具有“title”标签。但是我不能把它放在attrs.xml
中:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="ViewA">
<attr name="title" format="string" />
</declare-styleable>
<declare-styleable name="ViewB">
<attr name="title" format="string" />
<attr name="max" format="integer" />
</declare-styleable>
</resources>
由于出现错误,已经定义了属性“标题”。 Another question显示此解决方案:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<attr name="title" format="string" />
<declare-styleable name="ViewB">
<attr name="max" format="integer" />
</declare-styleable>
</resources>
但是在这种情况下,不会生成
R.styleable.ViewA_title
和R.styleable.ViewB_title
。我需要它们来使用以下代码从AttributeSet中读取属性:TypedArray a=getContext().obtainStyledAttributes( as, R.styleable.ViewA);
String title = a.getString(R.styleable.ViewA_title);
我该如何解决?
最佳答案
您发布的链接确实为您提供了正确的答案。这是它建议您执行的操作:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<attr name="title" format="string" />
<declare-styleable name="ViewA">
<attr name="title" />
</declare-styleable>
<declare-styleable name="ViewB">
<attr name="title" />
<attr name="max" format="integer" />
</declare-styleable>
</resources>
现在,
R.styleable.ViewA_title
和R.styleable.ViewB_title
都可以访问。如果有机会,请仔细阅读以下答案:Link。相关报价: