我已经创建了自己的自定义组件,并希望像这样使用android'提示'样式:
<com.sheep.EmailListContainer
android:id="@+id/my_component"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Hint To Use"/>
所以我的问题是,如何从我的组件的构造函数中的属性集中获取'提示'样式(将其用于我的组件)?
提前致谢 利奥尔
答案 0 :(得分:2)
您可以添加此方法:
public static final String DEFAULT_NAMESPACE = "http://schemas.android.com/apk/res/android";
private String getDefaultNamespaceAttributeValue(AttributeSet attrs, String attribute) {
String value = null;
int resId = attrs.getAttributeResourceValue(DEFAULT_NAMESPACE, attribute, 0);
if (resId != 0) {
value = getContext().getResources().getString(resId);
} else {
value = attrs.getAttributeValue(DEFAULT_NAMESPACE, attribute);
}
return value;
}
然后像这样使用:
public EmailListContainer(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
String value = getDefaultNamespaceAttributeValue(attrs, "hint");
}