Получить значение из значения атрибута из XML

У меня есть собственный класс, который расширен из Textview, теперь мне нужно получить значения в XML для макета. Я старался

public FontTextView(Context context, AttributeSet attrs) {
    super(context, attrs);
    setIncludeFontPadding(false);
    int style =  attrs.getAttributeIntValue(com.android.internal.R.styleable.TextAppearance_textStyle,-1);
    init(style);
}

но я не могу получить com.android.internal.R.styleable он говорит, что пакет не существует. Я думаю, что могу получить к нему доступ с внешней стороны пакета.

Есть ли способ получить стиль из XML здесь?

Значение styleable.TextAppearance_textStyle это -2001555 это изменится или я всегда смогу получить правильное значение с помощью?

int style =  attrs.getAttributeIntValue(-2001555,-1)

1 ответ

Решение

Тир, чтобы получить значения атрибутов таким образом. Обратите внимание на индексы TypedArray, как описано в документации.

public FontTextView(Context context, AttributeSet attrs) {
    super(context, attrs);

    int[] attrsArray = new int[]{android.R.attr.textStyle};
    final TypedArray array = context.obtainStyledAttributes(attrs, attrsArray);
    int style = array.getInt(0, -1);  // returns 1 for bold, 2 for italic
    array.recycle();
}
Другие вопросы по тегам