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.