O que é "android.R.layout.simple_list_item_1"?


229

Comecei a aprender o desenvolvimento do Android e estou seguindo um exemplo de lista de livros de um livro:

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

Não consigo entender exatamente esse código, especialmente esta linha:

android.R.layout.simple_list_item_1

Mas por que isso é um parâmetro? Eu só queria atualizar meu listview com minha matriz, e uma das respostas mostrou isso. Não sei por que preciso disso ... Aqui está minha pergunta. Obrigado! stackoverflow.com/questions/35098789/…
Ruchir Baronia

Respostas:


259

Zakaria, que é uma referência a um documento de layout XML interno que faz parte do sistema operacional Android, em vez de um de seus próprios layouts XML.

Aqui está uma lista adicional de layouts que você pode usar: http://developer.android.com/reference/android/R.layout.html
(link atualizado, graças a @Estel: https://github.com/android/platform_frameworks_base/ árvore / mestre / núcleo / res / res / layout )

Você pode realmente visualizar o código dos layouts.


15
Os layouts também estão na sua instalação do SDK
CommonsWare

10
Heh, então eles são. : P Eu tentei procurá-los antes apenas navegando no jar android dentro do Eclipse e ele me dizia "Source Not Found". Mas sim, eles estão em plataformas> android-x> data> res> layout. Boa decisão. :)
Kevin Coppock

8
Ele informa à lista de exibição qual layout usar para as linhas individuais. Existem outras com visualizações de texto marcadas para várias seleções; você pode criar layouts personalizados que incluem imagens e várias visualizações de texto, por exemplo. Esses android.R são apenas alguns fáceis de usar, já criaram recursos para você.
Kevin Coppock

30
Obrigado! Uau, isso é um monte de layouts. Toda a Referência Android parece revelar sobre eles (em R.layout.html) são os valores constantes para cada ID. Pode haver alguma documentação que ilustra cada uma delas com um caso de uso de amostra? (por exemplo, "O layout X se parece com isso [figura com IDs de campo]. É melhor usado nos casos a, bec. Ele pode ser visto em ação no aplicativo Y.") Sim, é ótimo saber que posso pilhar os cofres e cortar tudo sozinho, mas uma lista digitalizável de ilustrações (vs XML) seria uma grande ajuda!
Joe D'Andrea

12
Parece ser uma prática típica do Google. Eles lançam toda essa excelente tecnologia e possuem todas as habilidades de documentação da IBM.
angryITguy

35

Isso faz parte do sistema operacional Android. Aqui está a versão real do arquivo 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> 


9

Conforme mencionado por Klap, "android.R.layout.simple_list_item_1 é uma referência a um documento de layout XML interno que faz parte do sistema operacional Android".
Todos os layouts estão localizados em: sdk \ plataformas \ android-xx \ data \ res \ layout
Para visualizar o XML do layout:
Eclipse : digite android.R.layout.simple_list_item_1 em algum lugar do código, mantenha pressionada a tecla Ctrl, passe o mouse sobre simple_list_item_1 e, na lista suspensa exibida, selecione "Abrir declaração no layout / simple_list_item_1.xml". Ele direcionará você para o conteúdo do XML.
Android Studio : Janela Projeto -> Bibliotecas externas -> Plataforma Android X -> res -> layout, e aqui você verá uma lista dos layouts disponíveis.
insira a descrição da imagem aqui


7

android.R.layout.simple_list_item_1, esse é o arquivo de layout da linha na sua pasta res / layout que contém o design correspondente para a sua linha listview. Agora, apenas ligamos os itens da lista de array ao layout da linha usando mylistview.setadapter(aa);


5

Não há necessidade de acessar links externos, tudo o que você precisa já está localizado no seu computador:

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

O código fonte de todos os layouts do Android está localizado aqui.


4

Por área:
Eclipse: digite android.R.layout.simple_list_item_1 em algum lugar do código, mantenha pressionada a tecla Ctrl, passe o mouse sobre simple_list_item_1 e, no menu suspenso que aparece, selecione Abrir declaração no layout / simple_list_item_1.xml . Ele direcionará você para o conteúdo do XML.

A partir daí, se você passar o mouse sobre a guia simple_list_item_1.xml resultante no Editor, verá que o arquivo está localizado em C: \ Dados \ aplicativos \ Android \ android-sdk \ plataformas \ android-19 \ data \ res \ layout \ simple_list_item_1.xml (ou local equivalente para sua instalação).

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.