我在 attrs.xml 文件中創建了一個屬性:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="Custom">
<attr name="src" format="integer" />
</declare-styleable>
</resource>
在代碼中,我獲得屬性的代碼如下: attrs.getAttributeIntValue("mynamespace", "src", -1);
它是可以運行的。我從布局xml文件中獲取 'src' 的值。但是為什麼 android 不能在R類中生成一個值,那樣我就不需要在我的java代碼中再次使用字符串 'src'。
使用 TypedArray
public CustomView(final Context context) {
this(context, null);
}
public CustomView(final Context context,
final AttributeSet attrs) {
this(context, attrs, 0);
}
public CustomView(final Context context,
final AttributeSet attrs, final int defStyle) {
super(context, attrs, defStyle);
final TypedArray a = context.obtainStyledAttributes(attrs,
R.styleable.Custom, defStyle, 0);
int src = a.getInt(R.styleable.Custom_src, 0);
a.recycle();
}