如何在声明样式中定义整数数组?

时间:2013-01-08 16:33:25

标签: android android-xml android-resources typed-arrays declare-styleable

我为自定义视图实施了自己的<declare-styleable>(按照说明here)。我希望能够将整数数组指定为可能的XML属性之一。我如何:

  1. attrs.xml
  2. 中将整数数组指定为XML属性
  3. 在我的自定义视图中调用obtainStyledAttributes()后,从TypedArray获取它吗?

1 个答案:

答案 0 :(得分:26)

  1. 您可以将其声明为参考。

    <declare-styleable name="MyView">
        <attr name="array" format="reference"/>
    </declare-styleable>
    
  2. 看起来TypeArray没有getIntArray方法,所以你必须直接从资源中获取它。

    final TypedArray array = context.obtainStyledAttributes(attrs, R.styleable.MyView);
    final int id = array.getResourceId(R.styleable.MyView_array, 0);
    
    if (id != 0) {
        final int[] values = getResources().getIntArray(id);
    }
    
    array.recycle()