1025 votes

Ce qui est "outils:le contexte" dans Android fichiers de mise en page?

En commençant par une récente nouvelle version de l'outil ADT, j'ai remarqué ce nouvel attribut sur la mise en page des fichiers XML, par exemple:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    tools:context=".MainActivity" />

Qu'est-ce que "les outils:le contexte"?

Comment est-il même pas connaître le chemin exact de l'activité qui y est écrit? Faut-il chercher à le package de l'application, à l'intérieur du manifeste?

Est-il limité aux classes qui étendent Contexte ou seulement les activités? Est-il utilisable pour éléments ListView etc.?

503voto

Nikolay Elenkov Points 32843

C'est probablement l'activité, les outils d'INTERFACE de l'éditeur utilise pour rendre votre mise en page (il va trouver le bon thème en fonction de l'activité). Ceci est documenté ici (vers le milieu de l'article, abonnez-vous à cette page pour vous tenir à jour).

394voto

Tor Norbye Points 4490

Cet attribut est fondamentalement la persistance de la "Associé à l'Activité" sélection ci-dessus, la mise en page. Au moment de l'exécution, mise en page est toujours associée à une activité. Il peut être associé à plus d'un, mais au moins un. Dans l'outil, nous avons besoin de savoir à propos de ce mapping (qui au moment de l'exécution qui se passe dans l'autre sens; une activité peut appeler setContentView(mise en page) pour afficher une page) afin de piloter certaines fonctions.

Maintenant, nous l'utilisons pour une seule chose: comment choisir le bon thème pour montrer pour une mise en page (depuis le fichier manifeste pouvez vous inscrire thèmes à utiliser pour une activité, et une fois que nous savons de l'activité associée à la mise en page, nous pouvons choisir le bon thème pour montrer pour la mise en page). Dans l'avenir, nous allons l'utiliser pour conduire des fonctionnalités supplémentaires - comme le rendu de la barre d'action (qui est associée à l'activité), un endroit pour ajouter onClick gestionnaires, etc.

La raison que c'est un outils: attribut d'espace de noms, c'est que ce n'est qu'un moment de la conception de la cartographie pour une utilisation par l'outil. La mise en page elle-même peut être utilisé par de multiples activités/fragments, etc. Nous voulons juste vous donner un moyen de choisir un moment de la conception de liaison de sorte que l'on peut par exemple afficher le thème droit; vous pouvez le modifier à tout moment, comme vous pouvez le modifier notre listview et fragment de liaisons, etc.

(Voici l'intégral de l'ensemble de modifications qui a plus de détails sur ceci: https://android-review.googlesource.com/#/c/36273/ )

Et oui, le lien Nikolay énumérés ci-dessus montre comment la nouvelle configuration sélecteur ressemble et fonctionne: http://tools.android.com/recent/newconfigchooser

Une chose de plus: Les "outils" de l'espace de noms est spécial. Android outil de conditionnement sait de l'ignorer, de sorte qu'aucun de ces attributs seront emballés dans la APK. Nous l'utilisons pour les métadonnées supplémentaires dans la mise en page. C'est aussi là où par exemple les attributs de supprimer les peluches avertissements sont stockées -- comme des outils:l'ignorer.

97voto

anothercoder Points 346

Selon le Android Outils d'un Site de Projet:

outils:contexte

Cet attribut est généralement défini sur l'élément racine dans une mise en page fichier XML, et les enregistrements de l'activité la mise en page est associée (au moment de la conception, puisque de toute évidence une mise en page peut être utilisé par plus d'une page). Ce sera, par exemple, être utilisé par l'éditeur de disposition de deviner le thème par défaut, car les thèmes sont définis dans le Manifeste et sont associées à des activités, pas de mises en page. Vous pouvez utiliser le même point préfixe comme dans leur manifeste il suffit de spécifier la classe d'activité sans la pleine application nom du package comme un préfixe.

<android.support.v7.widget.GridLayout
    xmlns:android="http://schemas.android.com/apk/res/android"    
    xmlns:tools="http://schemas.android.com/tools"
    tools:context=".MainActivity">  

Utilisé par: Disposition des rédacteurs en Studio Et Eclipse, de la Charpie

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X