2017-01-10 2 views
1

Я использую следующий код, чтобы изменить размер шрифта на средний или высокий или малый. getFontSize() будет возвращать любого из этих размеровНет такой ошибки метода при настройке внешнего вида

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) 
    holder.title.setTextAppearance(new AppController().getFontSize()); 
else 
    holder.title.setTextAppearance(mContext, new AppController().getFontSize()); 

Но им получить следующее сообщение об ошибке:

java.lang.NoSuchMethodError: No virtual method setTextAppearance(I)V in class Landroid/widget/TextView; or its super classes (declaration of 'android.widget.TextView' appears in /system/framework/framework.jar) 

Почему я получаю такую ​​ошибку?

+1

см. Здесь. Https://code.google.com/p/android/issues/detail?id=183542 – rafsanahmad007

+0

Похоже, что компилятор должен потерпеть неудачу, но не так, что он сбой в прямом эфире. В соответствии с ссылкой @ rafsanahmad007, я думаю, что это связано с устаревшим методом @. –

+0

Вы уверены, что 'new AppController(). GetFontSize()' возвращает '@StyleRes int' (' int', представляющий ресурс стиля)? –

ответ

2

TextView::setTextAppearance ожидает целочисленное значение, которое идентифицирует ресурс стиля в проекте (например, @android:style/TextAppearance.Material.Body1). Если это ваше намерение, убедитесь, что ваш метод getFontSize() возвращает действительный идентификатор.

Но, я думаю, вы действительно пытаетесь установить размер шрифта, который должен быть выполнен с использованием метода TextView setTextSize(float size).

Смежные вопросы