编辑
另一种方法(指定可声明样式但不必声明自定义命名空间)如下:
attrs.xml:
<declare-styleable name="MyCustomView">
<attr name="android:text" />
</declare-styleable>
MyCustomView.java:
TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.MyCustomView);
CharSequence t = a.getText(R.styleable.MyCustomView_android_text);
a.recycle();
这似乎是从自定义视图中提取标准属性的通用 Android 方式。
在 Android API 中,他们使用内部 R.styleable 类来提取标准属性,并且似乎没有提供使用 R.styleable 提取标准属性的其他替代方案。
原帖
为确保您从标准组件中获取所有属性,您应该使用以下内容:
TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.TextView);
CharSequence t = a.getText(R.styleable.TextView_text);
int color = a.getColor(R.styleable.TextView_textColor, context.getResources().getColor(android.R.color.darker_gray)); // or other default color
a.recycle();
如果您想要来自另一个标准组件的属性,只需创建另一个 TypedArray。
有关标准组件的可用 TypedArrays 的详细信息,请参阅http://developer.android.com/reference/android/R.styleable.html。