2012-07-20 18 views
33

Sto modificando la mia app mobile per Android per supportare tablet e telefono cellulare. Per questo sto cambiando la mia classe di attività in frammento. Nella mia classe di attività ho un'istanza della mia classe un'applicazione creata come di seguito:Come ottenere l'oggetto applicazione nella classe frammento

appCtx = (UnityMobileApp) getApplication(); 

Dove UnityMobileApp è la mia classe Application.

Ora voglio creare la stessa istanza nella mia classe frammento. Ragazzi, per favore potete aiutarmi a risolvere questo?

+1

Dovete inviare un po 'più frammento di codice Ringraziamenti :) – SALMAN

risposta

82

Utilizzare appCtx = (UnityMobileApp) getActivity().getApplication(); nel frammento.

+0

uomo fantastico ha funzionato ... grazie mille :) –

+0

Prego. – biegleux

+16

Si noti che in alcuni casi il codice precedente genererà NPE perché potrebbe essere chiamato in una situazione in cui 'getActivity()' restituirà null (ad es. Nel mezzo di rotazione) – Ognyan

0

Come si sta cercando yo contesto applicativo uso dal frammento non è possibile utilizzare getApplication() perché non è il metodo di classe Frammento
Quindi è necessario prima di utilizzare il getActivity() che restituirà un Frammento di attività a cui il frammento è attualmente Associato a.

al sumup nel codice,

invece di this.getApplication() è necessario utilizzare getActivity.getApplication()

sapere di più su getActivity() da android documentation

Problemi correlati