4. Adapter
• Adapter é responsável por fazer uma ponte entre um
conjunto de dados a ser mostrado e a Adapter View
(listView, gridView, spinner)
• Cada item da lista passa a ser uma pequena view
(linha);
• O controle é feito através da posição dos itens da
lista;
5. Criando uma lista simples
• Passo 1: O layout
▫ Adicionar uma tag ListView dentro de um
layout.
6. Criando uma lista simples
• Passo 2: A activity
▫ Encontrar o id que referencia a lista no layout;
▫ Criar um adapter, passando os parâmetros context, layout e
items
▫ Setar o adapter na lista passando como parâmetro o adapter
criado;
7. Criando uma lista simples
• Prós
▫ Fácil de implementar;
▫ Serve como protótipo;
▫ Lista estática textos;
• Contras
▫ Não recicla a view;
▫ Só aceita textos;
8. Como uma lista é carregada
Scroll
Para
Cima
Reciclando
a view
9. ViewHolder
• Armazena cada componente (view) dentro de
uma tag.
• Previne que o método findViewById seja
chamado a cada vez que for utilizado o scroll e a
view ficar ativa
• Aumenta performance da lista, permitindo que
seja “scrolada” de forma suave
10. Criando uma lista customizada
• Cria-se um layout representando como será cada
linha da lista (custom_layout.xml)
• Cria uma tag do tipo ListView dentro do layout
principal (activity_main.xml)
• Utiliza o adapter para transformar o conteúdo de
cada linha em uma lista customizada
12. Criando uma lista customizada
• Adapter – extendendo de BaseAdapter
• Métodos:
getCount() – Quantos itens serão representados por este
adapter.
getItem(int position) – retorna o dado que está associado com
a posição atual
getItemId(int position) – retorna o id da linha associada com a
posição específica da lista
getView(int position, View convertView, ViewGroup parent) –
retorna a view que corresponde ao dado na posição atual
13. Criando uma lista customizada
• Estende o Adapter da classe BaseAdapter
14. Criando uma lista customizada
• Métodos getcount, getItem e getItemId
19. Outras formas
• Extender a activity de ListActivity
• Utilizando um CursorLoader (dado do banco)
• Utilizando uma Asynctask com ViewHolder
20. Atualizando a lista
• Use o método notifyDataSetChanged() ao mudar
a lista de itens.
21. Lidando com eventos
• Evento de click – implementando a interface
AdapterView.OnItemClickListener
• Evento de usando a classe anônima que implementa a
interface
23. RecyclerView
• Criada na versão 5.0 do Android (Lollipop)
• É um container que exibe dados que podem ser scrolados de
forma eficiente
• Faz parte das libs de supporte
25. LayoutManager
• Posiciona os itens dentro de uma RecyclerView
• Determina quando as views deverão ser
reaproveitadas
• Pode ser customizado (extendendo
RecyclerView.LayoutManager), a fim de melhorias
de performance e desempenho
26. • No arquivo build.gradle, importar as
dependências:
• Assim como na ListView, abra uma tag no layout
chamando RecyclerView
27. Layout do item usando cardview
• Abra uma tag no layout usando CardView
28. Criando o adapter
• Extenda o adapter de
RecyclerView.Adapter<MeuAdapter.ViewHolder>
• Crie o ViewHolder
29. Criando o adapter
• Implementando o método onCreateViewHolder
▫ Infla-se o layout
▫ Cria-se uma instância da classe ViewHolder passando a
view que foi criada
▫ Retorna o ViewHolder com a view já inflada
30. Criando o adapter
• Implementando o método onBindViewHolder
▫ Chamado pelo LayoutManager
▫ Substitui o conteúdo da view
• Retornando o tamanho da lista