Що таке "android.R.layout.simple_list_item_1"?


229

Я почав вивчати розробку Android, і я наслідую приклад тодоліста з книги:

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

Я не можу точно зрозуміти цей код, особливо цей рядок:

android.R.layout.simple_list_item_1

Але чому це параметр? Я просто хотів оновити список перегляду своїм масивом, і одна з відповідей показала це. Я не впевнений, навіщо мені це потрібно ... Ось моє запитання. Дякую! stackoverflow.com/questions/35098789 / ...
Ruchir Baronia

Відповіді:


259

Zakaria, це посилання на вбудований документ з компонуванням XML, який є частиною ОС Android, а не один із ваших власних макетів XML.

Ось подальший список макетів, якими ви можете скористатися: http://developer.android.com/reference/android/R.layout.html
(оновлене посилання дякує @Estel: https://github.com/android/platform_frameworks_base/ дерево / майстер / ядро ​​/ res / res / layout )

Ви дійсно можете переглянути код для макетів.


15
Макети також знаходяться у вашій програмі SDK
CommonsWare

10
Гей, так вони і є. : P Я намагався їх шукати раніше, лише переглядаючи баночку для Android в межах Eclipse, і він мені просто сказав "Джерело не знайдено". Але так, вони знаходяться під платформами> android-x> data> res> layout. Гарний дзвінок. :)
Кевін Коппок

8
Він повідомляє listview, який макет використовувати для окремих рядків. Є й інші з перевіреними текстовими переглядами для кількох виборів, ви можете робити власні макети, які включають зображення та, наприклад, кілька переглядів тексту. Ці Android.R - лише деякі прості у використанні, вже створені для вас ресурси.
Кевін Коппок

30
Дякую! Нічого собі, це багато макетів. Здається, всі довідки про Android розкривають про них (у R.layout.html) - постійні значення для кожного ідентифікатора. Чи може бути будь-яка документація, яка ілюструє кожне з них із прикладом використання зразка? (Наприклад, «Компонування X виглядає наступним чином [фігури з поля ід]. Це найкраще використовувати в тих випадках , а, б і в. Його можна побачити в дії в додатку Y.») Так, це здорово знати , що я можу пограбуйте сховища і зламайте все це самостійно, але сканований список ілюстрацій (проти XML) був би такою великою допомогою!
Джо Д'Андреа

12
Це, здається, є типовою практикою Google. Вони випускають всю цю чудову технологію та володіють усіма документальними навичками IBM.
сердитийТіг

35

Це частина ОС Android. Ось фактична версія визначеного файлу 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> 

13

як відповіли вище: kcoppock та Joril

заходьте сюди: https://github.com/android/platform_frameworks_base/tree/master/core/res/res/layout

просто клацніть правою кнопкою миші потрібний файл макета, потім виберіть "Зберегти як", збережіть десь, а потім скопіюйте його в папку "макет" у вашому проекті для Android (затемнення) ...

ви можете бачити, як виглядає макет :)

шлях...


9

Як згадував Клап, "android.R.layout.simple_list_item_1 - це посилання на вбудований документ із компонуванням XML, який є частиною ОС Android"
Усі макети розташовані у: sdk \ платформи \ android-xx \ data \ res \ макет
Щоб переглянути XML-макет:
Eclipse : Просто введіть android.R.layout.simple_list_item_1 десь у коді, утримуйте Ctrl, наведіть курсор миші на simple_list_item_1 і з випадаючого меню виберіть "Відкрити декларацію у макеті / simple_list_item_1.xml". Він направить вас до вмісту XML.
Android Studio : Вікно проекту -> Зовнішні бібліотеки -> Платформа Android X -> Res -> макет, і тут ви побачите список доступних макетів.
введіть тут опис зображення


7

android.R.layout.simple_list_item_1, це файл компонування рядків у папці res / layout, який містить відповідний дизайн для вашого рядка в listview. Тепер ми просто прив’язуємо елементи списку масивів до макета рядків, використовуючи mylistview.setadapter(aa);


5

Не потрібно переходити до зовнішніх посилань, усе, що вам потрібно, вже знаходиться на вашому комп’ютері:

Android \ android-sdk \ платформи \ android-x \ дані \ res \ макет.

Вихідний код для всіх макетів Android знаходиться тут.


4

За Arvand:
Eclipse: Просто введіть android.R.layout.simple_list_item_1 десь у коді, утримуйте Ctrl, наведіть курсор миші на simple_list_item_1 і зі спадного меню, що з’явиться, виберіть Відкрити декларацію у макеті / simple_list_item_1.xml . Він направить вас до вмісту XML.

Звідти, якщо потім навести курсор на отриману вкладку simple_list_item_1.xml у Редакторі, ви побачите, що файл знаходиться за адресою C: \ Data \ applications \ Android \ android-sdk \ platforms \ android-19 \ data \ res \ layout \ simple_list_item_1.xml (або еквівалентне місце для вашої установки).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.