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.

  • Android firebase 9.0.0 setValue para serializar enums
  • RecyclerView onCreateViewHolder llamado excesivamente cuando se desplaza rápidamente con DPAD
  • ¿Qué formato de video se reproducirá en todos los dispositivos Android?
  • Compruebe si el marcador está dentro del radio del círculo
  • Identificar el tipo de patrón de regex
  • Averiguar qué actividad comenzó mi actividad?
  • Fue introducido en api 23 http://developer.android.com/reference/android/app/Fragment.html#getContext ()

    ¿Es este el Context Application o de Activity ?

  • Android: R.drawable no mostrar mi imagen?
  • ¿Cómo usar CacheManager de Android?
  • El tinte de DrawableCompat no funciona en pre-Lollipop
  • Cómo buscar el método en un archivo en Android Studio
  • Cambiar el color de línea utilizado en listSeparatorTextViewStyle
  • Reproducir varias canciones con MediaPlayer al mismo tiempo: solo una está jugando
  • 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.