2012-07-20 8 views
33

Estoy cambiando mi aplicación móvil de Android para admitir tabletas y teléfono móvil. Para esto estoy cambiando mi clase de actividad en fragmento. En mi clase de actividad Tengo una instancia de mi clase de la aplicación creada como a continuación:Cómo obtener el objeto de aplicación en la clase de fragmento

appCtx = (UnityMobileApp) getApplication(); 

Dónde UnityMobileApp es mi clase de aplicaciones.

Ahora quiero crear la misma instancia en mi clase de fragmento. ¿Pueden ayudarme por favor a resolver esto?

+1

Tienes que publicar un poco más del fragmento de código .¡AGRADECE :) – SALMAN

Respuesta

82

Usa appCtx = (UnityMobileApp) getActivity().getApplication(); en tu fragmento.

+0

Buen hombre funcionó ... muchas gracias :) –

+0

De nada. – biegleux

+16

Tenga en cuenta que en algunos casos el código arrojará NPE porque puede ser llamado en una situación donde 'getActivity()' devolverá nulo (ej. En el medio de rotación por ejemplo) – Ognyan

0

Como usted está tratando años contexto de aplicación el uso de fragmentos no se pueden utilizar getApplication() porque ese no es el método de la clase Fragmento
Así que primero hay que utilizar el getActivity() que devolverá un fragmento Actividad a la que el fragmento está actualmente asociado con.

a sumup en su código,

en lugar de this.getApplication() usted tiene que utilizar getActivity.getApplication()

saber más acerca de getActivity()android documentation

Cuestiones relacionadas