如何在自定义视图中获取android默认属性
作者:互联网
我创建了一个包含RelativeLayout和EditText的简单自定义视图:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/edt_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</RelativeLayout>
我还在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中重新声明文本属性,我该怎么做?
解决方法:
您可以将android:text添加到声明的syleable中.但一定不要重新声明它.
<declare-styleable name="CustomEditText">
<attr name="android:text" />
</declare-styleable>
然后从样式中获取此值,就像使用R.styleable.CustomEditText_android_text索引的任何其他属性一样.
CharSequence text = typedArray.getText(R.styleable.CustomEditText_android_text);
标签:android-widget,android-custom-view,android,custom-view,android-attributes 来源: https://codeday.me/bug/20190722/1501266.html