如何从 attr 获取具有引用格式类型的字符串?
我有自定义 attr.xml
文档,其中指定了 declare-styleable
:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="EditTextValidateablePreference">
<attr name="errorMessage" format="reference" />
</declare-styleable>
</resources>
然后在布局中设置:
<com.xx.yy.EditTextValidateablePreference
...
ns:errorMessage="@string/validation_email_mail_server_invalid"
/>
在 EditTextValidateablePreference.class
中我得到它具有:
String validatorErrorMessage = attrs.getAttributeValue(PREFERENCE_NS, "errorMessage");
validatorErrorMessage
的值类似于: @2131099700
如何获取其整数值以将其与: 一起使用
context.getResources().getString(messageId)
?
谢谢 !
I have my custom attr.xml
document in which I specified declare-styleable
:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="EditTextValidateablePreference">
<attr name="errorMessage" format="reference" />
</declare-styleable>
</resources>
Then in layout I set:
<com.xx.yy.EditTextValidateablePreference
...
ns:errorMessage="@string/validation_email_mail_server_invalid"
/>
And in EditTextValidateablePreference.class
I get it with:
String validatorErrorMessage = attrs.getAttributeValue(PREFERENCE_NS, "errorMessage");
validatorErrorMessage
has a value like: @2131099700
How can I get its integer value to use it with:
context.getResources().getString(messageId)
?
Thanks !
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我建议您参考一个很好的一般答案:声明自定义使用 XML 的 android UI 元素
特别是,您应该使用 Context.obtainStyledAttributes(AttributeSet 设置、 int[] attrs) 和 TypedArray.getString(int index) 而不是 AttributeSet.getAttributeValue(...):
There's an excellent general answer which I recommend you to refer to: Declaring a custom android UI element using XML
In particular, you should use Context.obtainStyledAttributes(AttributeSet set, int[] attrs) and TypedArray.getString(int index) instead of AttributeSet.getAttributeValue(...):
从这个 int 中,您可以通过以下方式获取字符串...
And from this int, you can get the string by saying...