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

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.


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> 


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


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);


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.


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).

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.