¿Qué es "android.R.layout.simple_list_item_1"?

229

Empecé a aprender el desarrollo de Android y estoy siguiendo un ejemplo de lista de todolistas de 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);

No puedo entender exactamente este código, especialmente esta línea:

android.R.layout.simple_list_item_1
Zakaria
fuente
Pero, ¿por qué es eso un parámetro? Solo quería actualizar mi vista de lista con mi matriz, y una de las respuestas lo mostró. No estoy seguro de por qué necesito esto ... Aquí está mi pregunta. ¡Gracias! stackoverflow.com/questions/35098789/…
Ruchir Baronia

Respuestas:

259

Zakaria, que es una referencia a un documento de diseño XML incorporado que forma parte del sistema operativo Android, en lugar de uno de sus propios diseños XML.

Aquí hay una lista adicional de diseños que puede usar: http://developer.android.com/reference/android/R.layout.html
(Enlace actualizado gracias @Estel: https://github.com/android/platform_frameworks_base/ árbol / maestro / núcleo / res / res / diseño )

De hecho, puede ver el código de los diseños.

Kevin Coppock
fuente
15
Los diseños también están en la instalación de su SDK
CommonsWare
10
Je, así son. : P Intenté buscarlos antes simplemente navegando por el jar de Android dentro de Eclipse y me dijo "Fuente no encontrada". Pero sí, están en plataformas> android-x> data> res> layout. Buena llamada. :)
Kevin Coppock
8
Le dice a la vista de lista qué diseño usar para las filas individuales. Hay otros con vistas de texto marcadas para múltiples selecciones, puede hacer diseños personalizados que incluyan imágenes y múltiples vistas de texto, por ejemplo. Estos android.R son solo algunos recursos fáciles de usar, ya creados para usted.
Kevin Coppock
30
¡Gracias! Wow, eso es un montón de diseños. Toda la referencia de Android parece revelar sobre ellos (en R.layout.html) son los valores constantes para cada id. ¿Podría haber alguna documentación que ilustre cada uno de estos con un caso de uso de muestra? (por ejemplo, "El diseño X se ve así [figura con identificadores de campo]. Se utiliza mejor en los casos a, byc. Se puede ver en acción en la aplicación Y"). Sí, es genial saber que puedo saqueo las bóvedas y pirateo todo esto por mi cuenta, ¡pero una lista escaneable de ilustraciones (en comparación con XML) sería de gran ayuda!
Joe D'Andrea
12
Esta parece ser la práctica típica de Google. Lanzan toda esta gran tecnología y tienen todas las habilidades de documentación de IBM.
angryITguy
35

Esta es una parte del sistema operativo Android. Aquí está la versión real del archivo XML definido.

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
fuente
9

Como mencionó Klap "android.R.layout.simple_list_item_1 es una referencia a un documento de diseño XML integrado que forma parte del sistema operativo Android".
Todos los diseños se encuentran en: sdk \ plataformas \ android-xx \ data \ res \ diseño
Para ver el XML del diseño:
Eclipse : simplemente escriba android.R.layout.simple_list_item_1 en algún lugar del código, mantenga presionada la tecla Ctrl, pase el cursor sobre simple_list_item_1 y, en el menú desplegable que aparece, seleccione "Abrir declaración en diseño / simple_list_item_1.xml". Le dirigirá a los contenidos del XML.
Android Studio : Ventana de proyecto -> Bibliotecas externas -> Plataforma Android X -> res -> diseño, y aquí verá una lista de diseños disponibles.
ingrese la descripción de la imagen aquí

Arvand
fuente
7

android.R.layout.simple_list_item_1, este es el archivo de diseño de fila en su carpeta res / layout que contiene el diseño correspondiente para su fila listview. Ahora solo vinculamos los elementos de la lista de matriz al diseño de fila usando mylistview.setadapter(aa);

Swathieswari
fuente
5

No es necesario ir a enlaces externos, todo lo que necesita ya se encuentra en su computadora:

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

El código fuente de todos los diseños de Android se encuentra aquí.

Aaron Klap
fuente
4

Según Arvand:
Eclipse: simplemente escriba android.R.layout.simple_list_item_1 en algún lugar del código, mantenga presionada la tecla Ctrl, pase el cursor sobre simple_list_item_1 y, en el menú desplegable que aparece, seleccione Abrir declaración en layout / simple_list_item_1.xml . Le dirigirá a los contenidos del XML.

A partir de ahí, si luego pasa el cursor sobre la pestaña resultante simple_list_item_1.xml en el Editor, verá que el archivo se encuentra en C: \ Datos \ aplicaciones \ Android \ android-sdk \ plataformas \ android-19 \ data \ res \ layout \ simple_list_item_1.xml (o ubicación equivalente para su instalación).

Barry Holroyd
fuente