Eu fiz uma lista de itens algumas vezes usando o Android RecyclerView
, mas é um processo bastante complicado. Passando por um dos vários trabalhos on-line dos tutoriais ( isso , isso e isso são bons), mas estou procurando um exemplo básico que posso copiar e colar para começar a funcionar rapidamente. Somente os seguintes recursos são necessários:
- Layout vertical
- Um único TextView em cada linha
- Responde a eventos de clique
Como eu desejei isso várias vezes, finalmente decidi fazer a resposta abaixo para minha referência futura e a sua.
android
android-recyclerview
Suragch
fonte
fonte
Respostas:
A seguir, é apresentado um exemplo mínimo, semelhante à imagem a seguir.
Comece com uma atividade vazia. Você executará as seguintes tarefas para adicionar o RecyclerView. Tudo o que você precisa fazer é copiar e colar o código em cada seção. Mais tarde, você pode personalizá-lo para atender às suas necessidades.
Atualizar dependências Gradle
Verifique se as seguintes dependências estão no seu
gradle.build
arquivo de aplicativo :Você pode atualizar os números de versão para o que for mais atual . Use
compile
e nãoimplementation
se você ainda estiver usando o Android Studio 2.x.Criar layout de atividade
Adicione o
RecyclerView
ao seu layout xml.activity_main.xml
Criar layout de linha
Cada linha em nossa
RecyclerView
só terá uma únicaTextView
. Crie um novo arquivo de recurso de layout.recyclerview_row.xml
Crie o adaptador
É
RecyclerView
necessário um adaptador para preencher as visualizações em cada linha com seus dados. Crie um novo arquivo java.MyRecyclerViewAdapter.java
Notas
ListViews
e é uma necessidade comum. Você pode remover esse código se não precisar.Inicializar RecyclerView na atividade
Adicione o seguinte código à sua atividade principal.
MainActivity.java
Notas
ItemClickListener
que definimos em nosso adaptador. Isso nos permite lidar com eventos de clique em linhaonItemClick
.Acabado
É isso aí. Agora você poderá executar seu projeto e obter algo semelhante à imagem na parte superior.
Indo
Adicionando um divisor entre linhas
Você pode adicionar um divisor simples como este
Se você quiser algo um pouco mais complexo, consulte as seguintes respostas:
Alterando a cor da linha ao clicar
Veja esta resposta para saber como alterar a cor do plano de fundo e adicionar o efeito cascata quando uma linha é clicada.
Atualizando linhas
Veja esta resposta para saber como adicionar, remover e atualizar linhas.
Leitura adicional
fonte
Visualização Mínima do Reciclador pronta para usar o modelo Kotlin para:
Eu sei que esse é um tópico antigo e as respostas aqui. Adicionando esta resposta para referência futura:
Adicione uma visualização de reciclagem ao seu layout
Crie um layout para exibir itens da lista (list_item.xml)
Agora crie um adaptador mínimo para armazenar dados, o código aqui é auto-explicativo
Adicione esta classe para lidar com eventos de clique único e clique longo em Itens da Lista
Por fim, defina seu adaptador como Recycler View e adicione o Touch Listener para começar a interceptar o evento de toque para dar um toque duplo ou duplo nos itens da lista
Bônus; Atualizar dados
Resultado:
fonte
Esta será a versão mais simples da implementação do RecyclerView.
activity_main.xml
list_item_view.xml
CustomAdapter.java
MainActivity.java
fonte
Comece adicionando a biblioteca de recyclerview.
Crie classe de modelo.
criar classe de adaptador.
criar layout row_uses.xml
Localize a reciclagem e preencha dados.
Encontre o tutorial completo e o código-fonte aqui:
Android RecyclerView
fonte
usersAdapter = new UsersAdapter(userModelList,this);
?Com base em diferentes fontes, criei a Implementação Simples do RecyclerView usando uma Biblioteca Simples.
Adicione esta linha em
build.gradle
AddCriar um RecyclerView adicionando MyRecyclerView em activity_main.xml com
Agora no MainActivity, crie um ViewHolder passando o nome da classe que precisa ser vinculado
Crie itens da lista de variáveis e adaptadores com muito poucas linhas passando itens, classe e layout no adaptador
ClickListener pode ser adicionado com as seguintes linhas
Está tudo pronto.
Mais exemplos e implementação podem ser encontrados aqui . Espero que isto ajude !!!
fonte
Agora você precisa de 1 adaptador para todos
RecyclerView
onBindViewHolder
, semonCreateViewHolder
manipulação.Eu mostro aqui definindo dois diferentes
RecyclerView
por 1 adaptador -activity_home.xml
Você pode ver a lista de aprovação, o ID do layout do item e clique em listener no layout.
Esses atributos personalizados são criados pelo BindingAdapter .
Agora, em Activity, você passa na lista, clique em listener como
HomeActivity.java
Você não quer ler muito, clonar / baixar diretamente o exemplo completo no meu repositório do github. E tente você mesmo.
Você pode ver
GeneralAdapter.java
no repo acima.Se você tiver problemas ao configurar a ligação de dados, consulte esta resposta .
fonte
Desde que eu não posso comentar ainda vou postar como resposta no link .. Encontrei um tutorial simples e bem organizado em recyclerview http://www.androiddeft.com/2017/10/01/recyclerview-android/
Além disso, quando você adicionará uma visão do reciclador em sua atividade, o que você deseja fazer é o seguinte e como você deve fazer isso foi descrito no link
fonte
Você pode usar o adaptador abstrato com utilitários diff e filtro
SimpleAbstractAdapter.kt
E estenda o adaptador abstrato com métodos de implementos
TasksAdapter.kt
Adaptador Init
e preenchem
adicionar filtro personalizado
filtrar dados
fonte
Dependências
Uma classe para o item de clique
Segunda Classe RecyclerView
Classe do adaptador para o item reciclador
Classe do módulo
fonte
implementação androidx.recyclerview: recyclerview: .... É aconselhável atualizar para as bibliotecas androidx que estão aqui:
https://developer.android.com/jetpack/androidx/releases/recyclerview
A tag XML do widget do arquivo de layout deve ser atualizada para: androidx.recyclerview.widget.RecyclerView
fonte
Aqui está uma solução Kotlin muito mais recente para isso, que é muito mais simples do que muitas das respostas escritas aqui, ela usa classe anônima.
Tomei a liberdade de usar android.R.layout.simple_list_item_1 , pois é mais simples. Eu queria simplificá-lo ainda mais e colocar o ItemHolder como uma classe interna, mas não consegui descobrir como referenciá-lo em um tipo no parâmetro da classe externa.
fonte