문제

I'm implementing my own <declare-styleable> for a custom View (following the instructions here). I'd like to be able to specify an array of integers as one of the possible XML attributes. How do I:

  1. Specify the integer array as an XML attribute in attrs.xml?
  2. Get it from the TypedArray after calling obtainStyledAttributes() in my custom View?
도움이 되었습니까?

해결책

  1. You can declare it as a reference.

    <declare-styleable name="MyView">
        <attr name="array" format="reference"/>
    </declare-styleable>
    
  2. It looks like TypeArray hasn't getIntArray method so you have to get it directly from the resources.

    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()
    
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top