android - setTextAppearance obsoleto en el nivel API 23
deprecated (2)
public void setTextAppearance (Context context, int resId) Agregado en API nivel 1
Este método quedó en desuso en el nivel de API 23. Use setTextAppearance (int) en su lugar.
Mi pregunta : ¿Por qué ha sido desaprobado? ¿Por qué ya no necesita el Context ? Y lo más importante, ¿cómo usar setTextAppearance(int resId) para versiones anteriores?
cómo usar
setTextAppearance(int resId)para versiones anteriores?Úselo así:
if (Build.VERSION.SDK_INT < 23) { super.setTextAppearance(context, resId); } else { super.setTextAppearance(resId); }Para más información: https://.com/a/33393762/4747587
¿Por qué ha sido desaprobado? ¿Por qué ya no necesita el contexto?
La razón por la que está en desuso es que no hay necesidad de pasar un
context. Utiliza el contexto predeterminado proporcionado por laView. Mira el código fuente a continuación. Eso debería explicarlo.public void setTextAppearance(@StyleRes int resId) { setTextAppearance(mContext, resId); }El
mContextaquí se define en la claseView. Por lo tanto, ya no es necesario pasar unContexta este método.TextViewutilizará el contexto proporcionado durante su creación. Eso tiene más sentido.
ACTUALIZAR
Esta funcionalidad se agrega como parte de la Biblioteca de soporte. Entonces, en lugar de TextView , usa TextViewCompat [documentation] . También hay otras clases introducidas junto con esto, como ImageViewCompat .
Puede usar TextViewCompat desde la biblioteca de soporte:
import android.support.v4.widget.TextViewCompat
// ...
TextViewCompat.setTextAppearance(view, resId)
Internamente obtiene el contexto de la vista ( view.getContext() ) en API <23.