Che cos'è "android.R.layout.simple_list_item_1"?


229

Ho iniziato a studiare lo sviluppo di Android e sto seguendo un esempio di todolist da un libro:

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

Non riesco a capire esattamente questo codice, specialmente questa riga:

android.R.layout.simple_list_item_1

Ma perché è un parametro? Volevo solo aggiornare la mia lista con il mio array e una delle risposte lo ha mostrato. Non sono sicuro del motivo per cui ho bisogno di questo ... Ecco la mia domanda. Grazie! stackoverflow.com/questions/35098789/…
Ruchir Baronia

Risposte:


259

Zakaria, che è un riferimento a un documento di layout XML incorporato che fa parte del sistema operativo Android, piuttosto che a uno dei tuoi layout XML.

Ecco un ulteriore elenco di layout che è possibile utilizzare: http://developer.android.com/reference/android/R.layout.html
(Link aggiornato grazie @Estel: https://github.com/android/platform_frameworks_base/ albero / master / core / res / res / layout )

Puoi effettivamente visualizzare il codice per i layout.


15
I layout sono anche nell'installazione dell'SDK
CommonsWare

10
Eh, così sono. : P Avevo provato a cercarli prima semplicemente sfogliando il vaso Android all'interno di Eclipse e mi diceva semplicemente "Fonte non trovata". Ma sì, sono sotto piattaforme> android-x> dati> res> layout. Ottima scelta. :)
Kevin Coppock,

8
Indica alla visualizzazione elenco quale layout utilizzare per le singole righe. Ce ne sono altri con visualizzazioni di testo selezionate per più selezioni, ad esempio è possibile creare layout personalizzati che includono immagini e più visualizzazioni di testo. Questi android.R sono solo alcune risorse facili da usare e già create per te.
Kevin Coppock,

30
Grazie! Wow, ci sono molti layout. Tutto il riferimento Android sembra rivelare su di loro (in R.layout.html) sono i valori costanti per ogni ID. Potrebbe esserci della documentazione che illustra ciascuno di questi con un caso d'uso di esempio? (ad es. "Layout X assomiglia a questo [figura con ID campo]. È meglio utilizzato nei casi a, b e c. Può essere visto in azione nell'app Y.") Sì, è bello sapere che posso saccheggiare le volte e hackerare tutto da solo, ma un elenco scansionabile di illustrazioni (vs XML) sarebbe di grande aiuto!
Joe D'Andrea,

12
Questa sembra essere una pratica tipica di Google. Rilasciano tutta questa grande tecnologia e hanno tutte le capacità di documentazione di IBM.
angryITguy,

35

Questa è una parte del sistema operativo Android. Ecco la versione effettiva del file XML definito.

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

Come menzionato da Klap "android.R.layout.simple_list_item_1 è un riferimento a un documento di layout XML incorporato che fa parte del sistema operativo Android"
Tutti i layout si trovano in: sdk \ platform \ android-xx \ data \ res \ layout
Per visualizzare l'XML del layout:
Eclipse : digita semplicemente android.R.layout.simple_list_item_1 da qualche parte nel codice, tieni premuto Ctrl, passa con il mouse su simple_list_item_1 e dal menu a discesa che appare seleziona "Apri dichiarazione in layout / simple_list_item_1.xml". Ti indirizzerà al contenuto dell'XML.
Android Studio : Finestra del progetto -> Librerie esterne -> Piattaforma Android X -> res -> layout, e qui vedrai un elenco di layout disponibili.
inserisci qui la descrizione dell'immagine


7

android.R.layout.simple_list_item_1, questo è il file di layout di riga nella cartella res / layout che contiene il disegno corrispondente per la tua riga in listview. Ora associamo semplicemente gli elementi dell'elenco di array al layout di riga usando mylistview.setadapter(aa);


5

Non c'è bisogno di andare a collegamenti esterni, tutto ciò di cui hai bisogno si trova già sul tuo computer:

Android \ android-sdk \ piattaforme \ android-x \ Data \ res \ layout.

Il codice sorgente per tutti i layout Android si trova qui.


4

Per Arvand:
Eclipse: digita semplicemente android.R.layout.simple_list_item_1 da qualche parte nel codice, tieni premuto Ctrl, passa con il mouse su simple_list_item_1 e dal menu a discesa che appare seleziona Apri dichiarazione in layout / simple_list_item_1.xml . Ti indirizzerà al contenuto dell'XML.

Da lì, se passi il mouse sulla scheda risultante simple_list_item_1.xml nell'editor, vedrai che il file si trova in C: \ Data \ applicazioni \ Android \ android-sdk \ platform \ android-19 \ data \ res \ layout \ simple_list_item_1.xml (o posizione equivalente per l'installazione).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.