Получить значение из значения атрибута из 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();
}