Je suis nouveau dans le développement Android et j'ai fait une recherche sur le contexte. Je comprends ce que c'est et pourquoi est utile. Mais je vois qu'android gère le contexte pour moi dans les activités par exemple, je dois étendre une classe qui hérite du contexte et c'est tout. Cependant, dans certaines situations, je dois ajouter manuellement du contexte à une chose. Par exemple, lors de la création d'une nouvelle instance d'une vue depuis kotlin. Je dois passer un contexte au constructeur de vue, par exemple: Button (this)
Pourquoi dois-je indiquer explicitement à une instance de vue qu'elle fait partie d'une activité?
Après tout, je le définis dans l'activité.
Je comprends que le contexte est comme un pont entre mon application et les ressources externes et les outils système, mais le configurer manuellement me déroute parfois.
3 Réponses :
C'est parce qu'il existe de nombreux autres paramètres pour cela.
Nous définissons le contexte
car nous laissons la classe de base Button
(ou toute autre que vous utilisez) que la variable déclarée est une instance de Button mais pas les autres classes disponible partout!
J'ai trouvé cet article: https://www.101apps.co.za/index.php/articles/all-about-using-android-s-context-class.html
Je pense que cela explique très bien pourquoi nous devons passer le contexte manuellement pour afficher les instances.
"Passer le contexte à la vue lors de sa construction, donne vous avez la possibilité d'utiliser un contexte différent pour construire la vue, comme celui utilisé par l'activité, par exemple. Cela donne la vue accès à des ressources autres que celles utilisées par l'activité. "
Android peut définir le contexte automatiquement, mais il vous donne la liberté d'en choisir un autre. Cela pourrait être utile.
C'est vrai, en théorie, cela n'aurait pu être fait que lors de l'attachement de la vue à un parent, puis si le parent est attaché à la racine de l'activité, il a un contexte, sinon - lors de l'attachement d'une vue, Android aurait pu descendants et définissez leur contexte.
Cependant:
Il est fortement recommandé de consulter les sources Android. Vous trouverez des faits intéressants à l'intérieur, et c'est un excellent moyen d'apprendre.
nous devons ajouter le contexte en tant que paramètre car nous ne pouvons pas générer de vue pour les classes qui n'ont pas de contexte, c'est donc comme une vérification ...