0

我有一个从 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)
4

1 回答 1

0

Tyr 以这种方式获取属性值。请注意什么是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();
}
于 2014-07-24T10:38:42.727 回答