Подтвердить что ты не робот

Как определить массив целых чисел в объявлении-стиль?

Я реализую свой собственный <declare-styleable> для пользовательского представления (в соответствии с инструкциями здесь). Я хотел бы указать массив целых чисел в качестве одного из возможных атрибутов XML. Как я:

  • Укажите целочисленный массив как атрибут XML в attrs.xml?
  • Получите его из TypedArray после вызова obtainStyledAttributes() в моем пользовательском представлении?
4b9b3361

Ответ 1

  • Вы можете объявить его ссылкой.

    <declare-styleable name="MyView">
        <attr name="array" format="reference"/>
    </declare-styleable>
    
  • Похоже, что 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()