Android 如何使用名称空间“获取属性”;安卓;在自定义文本视图中
在自定义Android 如何使用名称空间“获取属性”;安卓;在自定义文本视图中,android,textview,android-custom-view,android-custom-attributes,Android,Textview,Android Custom View,Android Custom Attributes,在自定义TextView中,我试图获取text属性的值(例如) 但我收到了这个错误信息: 包com.android.internal.R不存在 那么如何检索TextView的“默认”属性呢?内部的.R类不可见,因此您只能通过它们的访问器方法读取它们,并且只能在调用超级构造函数之后读取它们 请参阅以了解其内部工作原理。如果您想访问这些“android”属性,可以“覆盖”它们:在可声明的可样式声明中 <attr name="android:padding"/> 记录在案,anwser的
TextView
中,我试图获取text
属性的值(例如)
但我收到了这个错误信息:
包com.android.internal.R不存在
那么如何检索TextView的“默认”属性呢?内部的.R类不可见,因此您只能通过它们的访问器方法读取它们,并且只能在调用超级构造函数之后读取它们
请参阅以了解其内部工作原理。如果您想访问这些“android”属性,可以“覆盖”它们:在可声明的可样式声明中
<attr name="android:padding"/>
记录在案,anwser的灵感来自Lucas Rocha实施的双向视图布局。我认为这是一个很好的例子,可以分析如何实现自定义视图来访问com.android.internal.R的资源,您可以使用
Resources.getSystem().getIdentifier(name, defType, defPackage)
可能会有帮助:你所说的访问器方法是什么意思?我总是得到
android.content.res.Resources$NotFoundException:String resource ID#0x0
我找不到任何其他方法来实现这种方法。所有其他方式都有一些问题。
int padding = a.getInt(R.styleable.CustomView_android_padding, -1);
Resources.getSystem().getIdentifier(name, defType, defPackage)