Qu'est-ce que «android.R.layout.simple_list_item_1»?

229

J'ai commencé à apprendre le développement Android et je suis un exemple de todolist d'un livre:

// Create the array list of to do items
final ArrayList<String> todoItems = new ArrayList<String>();

// Create the array adapter to bind the array to the listView
final ArrayAdapter<String> aa;
aa = new ArrayAdapter<String>(  this, 
                                android.R.layout.simple_list_item_1,
                                todoItems
                            );
myListView.setAdapter(aa);

Je ne peux pas comprendre exactement ce code, en particulier cette ligne:

android.R.layout.simple_list_item_1
Zakaria
la source
Mais pourquoi est-ce un paramètre? Je voulais juste mettre à jour ma vue de liste avec mon tableau, et l'une des réponses l'a montré. Je ne sais pas pourquoi j'ai besoin de ça ... Voici ma question. Merci! stackoverflow.com/questions/35098789/…
Ruchir Baronia

Réponses:

259

Zakaria, c'est une référence à un document de disposition XML intégré qui fait partie du système d'exploitation Android, plutôt qu'à l'une de vos propres dispositions XML.

Voici une liste supplémentaire de mises en page que vous pouvez utiliser: http://developer.android.com/reference/android/R.layout.html
(lien mis à jour grâce à @Estel: https://github.com/android/platform_frameworks_base/ arbre / maître / noyau / res / res / layout )

Vous pouvez réellement afficher le code des mises en page.

Kevin Coppock
la source
15
Les dispositions sont également dans votre installation SDK
CommonsWare
10
Hé, ils le sont aussi. : P J'avais essayé de les chercher avant juste en parcourant le pot Android dans Eclipse et il m'a juste dit "Source Not Found". Mais oui, ils sont sous les plateformes> android-x> data> res> layout. Bon appel. :)
Kevin Coppock
8
Il indique à la liste la disposition à utiliser pour les lignes individuelles. Il y en a d'autres avec des vues de texte vérifiées pour plusieurs sélections, vous pouvez faire des mises en page personnalisées qui incluent des images et plusieurs vues de texte par exemple. Ces android.R sont juste des ressources faciles à utiliser et déjà créées pour vous.
Kevin Coppock, du
30
Merci! Wow, c'est beaucoup de mises en page. Toutes les références Android semblent révéler à leur sujet (dans R.layout.html) les valeurs constantes de chaque identifiant. Pourrait-il y avoir de la documentation illustrant chacun d'eux avec un exemple de cas d'utilisation? (par exemple, "La disposition X ressemble à ceci [figure avec les identifiants de champ]. Elle est mieux utilisée dans les cas a, b et c. Elle peut être vue en action dans l'application Y.") Oui, il est bon de savoir que je peux piller les coffres et pirater tout cela par moi-même, mais une liste d'illustrations numérisables (vs XML) serait d'une grande aide!
Joe D'Andrea
12
Cela semble être une pratique typique de Google. Ils libèrent toute cette grande technologie et ont toutes les compétences de documentation d'IBM.
angryITguy
35

Cela fait partie du système d'exploitation Android. Voici la version réelle du fichier XML défini.

simple_list_item_1:

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/text1"
    style="?android:attr/listItemFirstLineStyle"
    android:paddingTop="2dip"
    android:paddingBottom="3dip"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" />

simple_list_item_2:

<TwoLineListItem xmlns:android="http://schemas.android.com/apk/res/android"
    android:paddingTop="2dip"
    android:paddingBottom="2dip"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">

    <TextView android:id="@android:id/text1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        style="?android:attr/listItemFirstLineStyle"/>

    <TextView android:id="@android:id/text2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@android:id/text1"
        style="?android:attr/listItemSecondLineStyle" />

</TwoLineListItem> 
nikoo28
la source
13

comme répondu ci-dessus par: kcoppock et Joril

allez ici: https://github.com/android/platform_frameworks_base/tree/master/core/res/res/layout

faites un clic droit sur le fichier de mise en page que vous souhaitez, puis sélectionnez "Enregistrer sous", enregistrez quelque part, puis copiez-le dans le dossier "mise en page" de votre projet Android (éclipse) ...

vous pouvez voir à quoi ressemble la mise en page :)

marche à suivre...

Nigel Crasto
la source
9

Comme mentionné par Klap "android.R.layout.simple_list_item_1 est une référence à un document de mise en page XML intégré qui fait partie du système d'exploitation Android"
Toutes les mises en page se trouvent dans: sdk \ plates-formes \ android-xx \ data \ res \ mise en page
Pour afficher le XML de la mise en page:
Eclipse : il suffit de taper android.R.layout.simple_list_item_1 quelque part dans le code, maintenez la touche Ctrl, survolez simple_list_item_1, et dans la liste déroulante qui apparaît, sélectionnez "Ouvrir la déclaration dans layout / simple_list_item_1.xml". Il vous dirigera vers le contenu du XML.
Android Studio : Fenêtre de projet -> Bibliothèques externes -> Plate-forme Android X -> res -> mise en page, et ici vous verrez une liste des mises en page disponibles.
entrez la description de l'image ici

Arvand
la source
7

android.R.layout.simple_list_item_1, il s'agit du fichier de disposition des lignes dans votre dossier res / layout qui contient la conception correspondante pour votre ligne listview. Maintenant, nous lions simplement les éléments de la liste des tableaux à la disposition des lignes en utilisant mylistview.setadapter(aa);

Swathieswari
la source
5

Pas besoin d'aller sur des liens externes, tout ce dont vous avez besoin se trouve déjà sur votre ordinateur:

Android \ android-sdk \ plates-formes \ android-x \ data \ res \ layout.

Le code source de toutes les mises en page Android se trouve ici.

Aaron Klap
la source
4

Par Arvand:
Eclipse: il suffit de taper android.R.layout.simple_list_item_1 quelque part dans le code, maintenez la touche Ctrl, survolez simple_list_item_1 , et dans la liste déroulante qui apparaît, sélectionnez Ouvrir la déclaration dans layout / simple_list_item_1.xml . Il vous dirigera vers le contenu du XML.

De là, si vous survolez ensuite l' onglet simple_list_item_1.xml résultant dans l'éditeur, vous verrez que le fichier se trouve dans C: \ Data \ applications \ Android \ android-sdk \ plates-formes \ android-19 \ data \ res \ layout \ simple_list_item_1.xml (ou emplacement équivalent pour votre installation).

Barry Holroyd
la source