Was ist "android.R.layout.simple_list_item_1"?


229

Ich habe angefangen, Android-Entwicklung zu lernen und folge einem Beispiel aus einem Buch:

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

Ich kann diesen Code nicht genau verstehen, insbesondere diese Zeile:

android.R.layout.simple_list_item_1

Aber warum ist das ein Parameter? Ich wollte nur meine Listenansicht mit meinem Array aktualisieren, und eine der Antworten zeigte dies. Ich bin mir nicht sicher, warum ich das brauche ... Hier ist meine Frage. Vielen Dank! stackoverflow.com/questions/35098789/…
Ruchir Baronia

Antworten:


259

Zakaria, das ist ein Verweis auf ein integriertes XML-Layoutdokument, das Teil des Android-Betriebssystems ist, und nicht auf eines Ihrer eigenen XML-Layouts.

Hier ist eine weitere Liste von Layouts, die Sie verwenden können: http://developer.android.com/reference/android/R.layout.html
(Aktualisierter Link danke @Estel: https://github.com/android/platform_frameworks_base/ Baum / Master / Kern / Res / Res / Layout )

Sie können den Code für die Layouts tatsächlich anzeigen.


15
Die Layouts befinden sich auch in Ihrer SDK-Installation
CommonsWare

10
Heh, so sind sie. : P Ich hatte zuvor versucht, nach ihnen zu suchen, indem ich das Android-Glas in Eclipse durchsucht habe, und es sagte mir nur "Quelle nicht gefunden". Aber ja, sie sind unter Plattformen> Android-X> Daten> Res> Layout. Guter Anruf. :)
Kevin Coppock

8
Es teilt der Listenansicht mit, welches Layout für die einzelnen Zeilen verwendet werden soll. Es gibt andere mit aktivierten Textansichten für mehrere Auswahlen. Sie können benutzerdefinierte Layouts erstellen, die Bilder enthalten, und beispielsweise mehrere Textansichten. Diese android.R sind nur einige einfach zu verwendende, bereits erstellte Ressourcen für Sie.
Kevin Coppock

30
Vielen Dank! Wow, das sind viele Layouts. Alle Android-Referenzen (in R.layout.html) scheinen die konstanten Werte für jede ID zu enthüllen. Könnte es eine Dokumentation geben, die diese anhand eines Anwendungsbeispiels veranschaulicht ? (zB "Layout X sieht so aus [Abbildung mit Feld-IDs]. Es wird am besten in den Fällen a, b und c verwendet. Es kann in App Y in Aktion gesehen werden.") Ja, es ist gut zu wissen, dass ich es kann Plündere die Tresore und hacke das alles alleine aus, aber eine scannbare Liste von Illustrationen (vs XML) wäre eine große Hilfe!
Joe D'Andrea

12
Dies scheint eine typische Praxis von Google zu sein. Sie veröffentlichen all diese großartige Technologie und verfügen über alle Dokumentationsfähigkeiten von IBM.
wütendITguy

35

Dies ist ein Teil des Android-Betriebssystems. Hier ist die aktuelle Version der definierten XML-Datei.

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

Wie von Klap erwähnt, ist "android.R.layout.simple_list_item_1 ein Verweis auf ein integriertes XML-Layoutdokument, das Teil des Android-Betriebssystems ist".
Alle Layouts befinden sich in: sdk \ platform \ android-xx \ data \ res \ layout
So zeigen Sie das XML des Layouts an:
Eclipse : Geben Sie einfach android.R.layout.simple_list_item_1 irgendwo im Code ein, halten Sie die Strg-Taste gedrückt, bewegen Sie den Mauszeiger über simple_list_item_1 und wählen Sie in der angezeigten Dropdown-Liste "Deklaration in layout / simple_list_item_1.xml öffnen" aus. Sie werden zum Inhalt des XML weitergeleitet.
Android Studio : Projektfenster -> Externe Bibliotheken -> Android X-Plattform -> res -> Layout. Hier sehen Sie eine Liste der verfügbaren Layouts.
Geben Sie hier die Bildbeschreibung ein


7

android.R.layout.simple_list_item_1Dies ist eine Zeilenlayoutdatei in Ihrem Ordner res / layout, die das entsprechende Design für Ihre Zeile in enthält listview. Jetzt binden wir die Array-Listenelemente einfach mit an das Zeilenlayout mylistview.setadapter(aa).


5

Sie müssen nicht zu externen Links wechseln, alles, was Sie benötigen, befindet sich bereits auf Ihrem Computer:

Android \ android-sdk \ platform \ android-x \ data \ res \ layout.

Der Quellcode für alle Android-Layouts befindet sich hier.


4

Per Arvand:
Eclipse: Geben Sie einfach android.R.layout.simple_list_item_1 irgendwo im Code ein, halten Sie die Strg- Taste gedrückt , bewegen Sie den Mauszeiger über simple_list_item_1 und wählen Sie in der angezeigten Dropdown-Liste die Option Deklaration öffnen in layout / simple_list_item_1.xml aus . Sie werden zum Inhalt des XML weitergeleitet.

Wenn Sie dann im Editor mit der Maus über die resultierende Registerkarte simple_list_item_1.xml fahren , sehen Sie, dass sich die Datei unter C: \ Daten \ Anwendungen \ Android \ android-sdk \ Plattformen \ android-19 \ data \ res \ befindet layout \ simple_list_item_1.xml (oder gleichwertiger Speicherort für Ihre Installation).

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.