SetTextAppearance obsoleto en el nivel 23 de API

Public void setTextAppearance (Context context, int resId) Añadido en el nivel 1 de API
Este método fue obsoleto en el nivel 23. Use setTextAppearance (int) en su lugar.

Mi pregunta : ¿Por qué se ha desaprobado? ¿Por qué ya no necesita Context ? Y lo más importante, ¿cómo usar setTextAppearance(int resId) para versiones anteriores?

  1. Cómo usar setTextAppearance(int resId) para versiones anteriores?

    Utilícelo de esta manera:

     if (Build.VERSION.SDK_INT < 23) { super.setTextAppearance(context, resId); } else { super.setTextAppearance(resId); } 

    Para más información: https://stackoverflow.com/a/33393762/4747587

  2. ¿Por qué se ha desaprobado? ¿Por qué ya no necesita Contexto?

    La razón por la que está obsoleta es que no hay necesidad de pasar un context . Utiliza el contexto predeterminado proporcionado por la View . Mira el código fuente de abajo. Eso debería explicarlo.

     public void setTextAppearance(@StyleRes int resId) { setTextAppearance(mContext, resId); } 

    El mContext aquí se define en la clase View . Por lo tanto, no es necesario pasar un Context a este método. TextView utilizará el contexto proporcionado durante su creación. Eso tiene más sentido.

Puede utilizar 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 la API <23.

Fuente para TextViewCompat

Fuente para TextView (API23)

  • Deprecated Classess en Android
  • NameValuePair, HttpParams, HttpConnection Parámetros obsoletos en la clase de solicitud del servidor para la aplicación de inicio de sesión
  • Problema de ManagedQuery () obsoleto al obtener los registros de llamadas
  • Cómo eliminar el código de Facebook
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.