2 clcurie 11 clcurie_11 于 2013.03.21 10:23 提问

用 java 代码获得一个自定义属性的值

我在 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'。

1个回答

hxn_217
hxn_217   2013.03.27 15:35
已采纳

使用 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();
}
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!