Co to jest „android.R.layout.simple_list_item_1”?

229

Zacząłem uczyć się programowania na Androida i podążam za przykładem todolisty z książki:

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

Nie rozumiem dokładnie tego kodu, szczególnie tej linii:

android.R.layout.simple_list_item_1
Zakaria
źródło
Ale dlaczego to jest parametr? Chciałem tylko zaktualizować widok listy za pomocą mojej tablicy, a jedna z odpowiedzi to pokazała. Nie jestem pewien, dlaczego tego potrzebuję ... Oto moje pytanie. Dzięki! stackoverflow.com/questions/35098789/…
Ruchir Baronia 30.01.2016

Odpowiedzi:

259

Zakaria, czyli odniesienie do wbudowanego dokumentu układu XML, który jest częścią systemu operacyjnego Android, a nie jednego z własnych układów XML.

Oto kolejna lista układów, których możesz użyć: http://developer.android.com/reference/android/R.layout.html
(Zaktualizowany link dzięki @Estel: https://github.com/android/platform_frameworks_base/ drzewo / master / core / res / res / layout )

Możesz faktycznie wyświetlić kod dla układów.

Kevin Coppock
źródło
15
Układy są również w instalacji SDK
CommonsWare
10
Heh, więc są. : P Próbowałem ich poszukać, przeglądając słoik z Androidem w Eclipse, i powiedział mi „Nie znaleziono źródła”. Ale tak, są pod platformami> android-x> data> res> layout. Dobra decyzja. :)
Kevin Coppock,
8
Informuje widok listy, jakiego układu użyć dla poszczególnych wierszy. Istnieją inne z sprawdzonymi widokami tekstowymi dla wielu wyborów, możesz tworzyć niestandardowe układy zawierające obrazy i na przykład wiele widoków tekstu. Te android.R to tylko niektóre łatwe w użyciu, już stworzone dla Ciebie zasoby.
Kevin Coppock
30
Dzięki! Wow, to dużo układów. Wydaje się, że wszystkie informacje o systemie Android ujawniają o nich (w R.layout.html) wartości stałe dla każdego identyfikatora. Czy może istnieć jakaś dokumentacja ilustrująca każdy z nich z przykładowym przypadkiem użycia? (na przykład „X rozkład wygląda następująco [Rysunek z identyfikatorami polowych]. Najlepiej jest stosować w przypadkach, a, b, c. Można je zobaczyć w akcji w APP Y.”) Tak, to jest wspaniale wiedzieć, że mogę plądruj skarbce i zhakuj to wszystko na własną rękę, ale skanowana lista ilustracji (vs XML) byłaby tak wielką pomocą!
Joe D'Andrea,
12
Jest to typowa praktyka Google. Wypuszczają całą tę wspaniałą technologię i posiadają wszystkie umiejętności dokumentacyjne IBM.
złyITguy
35

Jest to część systemu operacyjnego Android. Oto aktualna wersja zdefiniowanego pliku XML.

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
źródło
9

Jak wspomniano w Klap „android.R.layout.simple_list_item_1 jest odniesieniem do wbudowanego dokumentu układu XML, który jest częścią systemu operacyjnego Android”
Wszystkie układy znajdują się w: sdk \ platform \ android-xx \ data \ res \ układ
Aby wyświetlić XML układu:
Eclipse : po prostu wpisz gdzieś w kodzie android.R.layout.simple_list_item_1, przytrzymaj Ctrl, najedź myszką na simple_list_item_1, a z rozwijanego menu wybierz „Otwórz deklarację w układzie / simple_list_item_1.xml”. Przekieruje cię do zawartości XML.
Android Studio : Okno projektu -> Biblioteki zewnętrzne -> Platforma Android X -> res -> układ, a tutaj zobaczysz listę dostępnych układów.
wprowadź opis zdjęcia tutaj

Arvand
źródło
7

android.R.layout.simple_list_item_1, jest to plik układu wiersza w folderze res / layout, który zawiera odpowiedni projekt dla Twojego wiersza w listview. Teraz po prostu łączymy elementy listy tablic z układem wierszy za pomocą mylistview.setadapter(aa);

Swathieswari
źródło
5

Nie musisz przechodzić do zewnętrznych linków, wszystko czego potrzebujesz znajduje się już na twoim komputerze:

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

Kod źródłowy dla wszystkich układów Androida znajduje się tutaj.

Aaron Klap
źródło
4

Per Arvand:
Eclipse: po prostu wpisz gdzieś w kodzie android.R.layout.simple_list_item_1 , przytrzymaj Ctrl, najedź myszką na simple_list_item_1 , a z rozwijanego menu wybierz Otwórz deklarację w układzie / simple_list_item_1.xml . Przekieruje cię do zawartości XML.

Stamtąd, jeśli najedziesz wskaźnikiem myszy na wynikową kartę simple_list_item_1.xml w Edytorze, zobaczysz, że plik znajduje się w C: \ Data \ applications \ Android \ android-sdk \ platform \ android-19 \ data \ res \ layout \ simple_list_item_1.xml (lub równoważne miejsce instalacji).

Barry Holroyd
źródło