作者:3e83owut | 来源:互联网 | 2023-02-01 09:47
我创建了一个简单的自定义视图,其中包含a RelativeLayout
和EditText
:
此外,我添加了一些自定义属性res/values/attrs.xml
,我在自定义视图构造函数中检索这些属性,一切正常.
现在,我想EditText
在自定义视图中检索默认属性,例如我想android:text
在自定义视图中获取属性.
我的自定义视图类(简化):
public class CustomEditText extends RelativeLayout {
private int panCount;
public CustomEditText(Context context, AttributeSet attrs) {
super(context, attrs);
TypedArray typedArray = context.getTheme().obtainStyledAttributes(attrs,
R.styleable.CustomEditText, 0, 0);
try {
this.panCount = typedArray.getInt(R.styleable.CustomEditText_panCount, 16);
} finally {
typedArray.recycle();
}
}
}
如果不重新声明文本属性,我怎么能这样做res/values/attrs.xml
呢?
1> tynn..:
您可以添加android:text
到声明的syleable.但一定不要重新声明它.
然后从样式中获取此值,就像使用索引为的任何其他属性一样R.styleable.CustomEditText_android_text
.
CharSequence text = typedArray.getText(R.styleable.CustomEditText_android_text);