Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Android: El nuevo método getContext () de Fragment es qué contexto?

Los documentos para Fragment.getContext() dice

Devuelve el contexto al que está asociado el Fragmento.

  • No tiene ningún directorio de librerías en Android Studio
  • ¿Por qué Butterknife @Bind falla en la compilación de liberación (después de proguard)
  • Fade In Fade Out Android Animation en Java
  • AnalyticsService no registrado en el manifiesto de la aplicación - error
  • Error al utilizar onClickListener (Intent)
  • Cómo desbloquear el teléfono Android a través del código de forma remota
  • Fue introducido en api 23 http://developer.android.com/reference/android/app/Fragment.html#getContext ()

    ¿Es este el Context Application o de Activity ?

  • Phonegap / HTML5 y la pantalla de Android redimensionan el problema en rotación de paisaje a retrato
  • Obtener referencia a Thread Object desde su ID
  • ¿Cómo aclarar un botón?
  • Android: deshabilitar los botones OK / Cancelar de DialogFragment
  • Problema al ejecutar mi keystore firmado y liberado en Eclipse
  • Android (Java) Simple Enviar y recibir con el servidor - Desafío de configuración rápida
  • 2 Solutions collect form web for “Android: El nuevo método getContext () de Fragment es qué contexto?”

    Respuesta corta

    Fragment.getContext() devuelve el contexto de la actividad donde se utiliza fragmento

    Detalles

    Desde api 23 en la clase Fragment se introdujo el campo mHost

     // Activity this fragment is attached to. FragmentHostCallback mHost; 

    Y Fragment.getContext() utiliza para obtener el contexto:

     /** * Return the {@link Context} this fragment is currently associated with. */ public Context getContext() { return mHost == null ? null : mHost.getContext(); } 

    Hay varios pasos antes de obtener el contexto de Activity en el método getContext() del fragmento.

    1) Durante la inicialización de la actividad se crea FragmentController :

     final FragmentController mFragments = FragmentController.createController(new HostCallbacks()); 

    2) Utiliza la clase HostCallbacks (clase interna de Activity )

     class HostCallbacks extends FragmentHostCallback<Activity> { public HostCallbacks() { super(Activity.this /*activity*/); } ... } 

    3) Como se puede ver mFragments mantener la referencia al contexto de la actividad.

    4) Cuando la aplicación crea un fragmento, utiliza FragmentManager . Y la instancia de ello se toma de mFragments (ya que el API nivel 23)

     /** * Return the FragmentManager for interacting with fragments associated * with this activity. */ public FragmentManager getFragmentManager() { return mFragments.getFragmentManager(); } 

    5) Finalmente, el campo Fragment.mHost se establece en FragmentManager.moveToState(Fragment f, int newState, int transit, int transitionStyle, boolean keepActive) .

    En cuanto a FragmentActivity y heredado – 'getContext ()' todavía volverá el contexto de la actividad, usted puede ver esto si usted comprueba un código de fuente.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.