Comment obtenir de l'objet application dans le fragment de classe
Je suis l'évolution de mon mobile android app pour soutenir à la fois les tablettes et téléphone mobile. Pour cela, je suis en train de changer ma classe d'activité dans le fragment. Dans mon activité de classe, j'ai une instance de ma classe d'application créé comme ci-dessous:
appCtx = (UnityMobileApp) getApplication();
Où UnityMobileApp
est ma classe d'Application.
Maintenant, je veux créer le même exemple, dans mon fragment de classe. Pouvez-vous les gars merci de m'aider à résoudre ce problème?
- Vous devez poster un peu plus d'un extrait de code .Merci 🙂
Vous devez vous connecter pour publier un commentaire.
Utilisation
appCtx = (UnityMobileApp) getActivity().getApplication();
dans votre fragment.getActivity()
renvoie la valeur null (par ex. au moyen de la rotation par exemple)La méthode
getActivity()
peut avoir la possibilité de retourner la valeur null. Cela peut provoquer une panne de votre application.Donc, il est sûr à utiliser cette méthode à l'intérieur de laonActivityCreated()
. Par exemple:Cette réponse est dérivé de Dzianis Yafima de réponse demandé par Ognyan dans les commentaires. Ainsi, le Crédit va à Dzianis Yafima de et Ognyan dans stackoverflow.
Que vous êtes en train yo utiliser le contexte de l'application de fragment que vous ne pouvez pas utiliser
getApplication()
parce que ce n'est pas la méthode de Fragment de classeDonc, vous devez d'abord utiliser le
getActivity()
qui retournera un Fragment de l'Activité à laquelle le fragment est actuellement associés.de sumup dans votre code,
au lieu de
this.getApplication()
vous devez utilisergetActivity.getApplication()
en savoir plus sur
getActivity()
de android documentationAlternativement à l'aide de Kotlin