2017-01-10 3 views
1

Ich verwende den folgenden Code, um die Schriftgröße auf mittel oder hoch oder klein zu ändern. getFontSize() wird jeder dieser Größen zurückkehrenKein solcher Methodenfehler beim Einstellen der Textdarstellung

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

Aber im den folgenden Fehler erhalten:

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) 

Warum bin ich so Fehler zu bekommen?

+1

siehe das Problem hier https://code.google.com/p/android/issues/detail?id=183542 – rafsanahmad007

+0

Es sieht aus wie der Compiler sollte fehlschlagen, aber es nicht so stürzt es in Live ab. Nach @ rafsanahmad007 Link denke ich, dass es zu einer @ veralteten Methode verwandt ist. –

+0

Sind Sie sicher, dass 'new AppController(). GetFontSize()' '' StyleRes int' zurückgibt ('int' steht für eine Stilressource)? –

Antwort

2

TextView::setTextAppearance erwartet einen ganzzahligen Wert, der eine Stilressource im Projekt identifiziert (wie @android:style/TextAppearance.Material.Body1). Wenn dies Ihre Absicht ist, stellen Sie sicher, dass Ihre Methode getFontSize() eine gültige ID zurückgibt.

Aber ich denke, dass Sie tatsächlich versuchen, die Schriftgröße zu setzen, die mit der setTextSize(float size) Methode von TextView getan werden sollte.

Verwandte Themen