Carregando Dados no ListView Com OnScrollListener e Volley no Android

Receba em primeira mão, e com prioridade, os conteúdos Android exclusivos do Blog. Você receberá um email de confirmação. Somente depois de confirma-lo é que poderei lhe enviar os conteúdos exclusivos.

Email inválido.
Blog /Android /Carregando Dados no ListView Com OnScrollListener e Volley no Android

Carregando Dados no ListView Com OnScrollListener e Volley no Android

Vinícius Thiengo
(7009) (27) (2)
Go-ahead
"Descobri que pequenas vitórias, pequenos projetos, pequenas diferenças muitas vezes fazem grandes diferenças."
Rosabeth Moss Kanter
Kotlin Android
Capa do livro Desenvolvedor Kotlin Android - Bibliotecas para o dia a dia
TítuloDesenvolvedor Kotlin Android - Bibliotecas para o dia a dia
CategoriasAndroid, Kotlin
AutorVinícius Thiengo
Edição
Capítulos19
Páginas1035
Acessar Livro
Treinamento Oficial
Android: Prototipagem Profissional de Aplicativos
CursoAndroid: Prototipagem Profissional de Aplicativos
CategoriaAndroid
InstrutorVinícius Thiengo
NívelTodos os níveis
Vídeo aulas186
PlataformaUdemy
Acessar Curso
Receitas Android
Capa do livro Receitas Para Desenvolvedores Android
TítuloReceitas Para Desenvolvedores Android
CategoriaDesenvolvimento Android
AutorVinícius Thiengo
Edição
Ano2017
Capítulos20
Páginas936
Acessar Livro
Código Limpo
Capa do livro Refatorando Para Programas Limpos
TítuloRefatorando Para Programas Limpos
CategoriaEngenharia de Software
AutorVinícius Thiengo
Edição
Ano2017
Capítulos46
Páginas599
Acessar Livro
Quer aprender a programar para Android? Acesse abaixo o curso gratuito no Blog.
Conteúdo Exclusivo
Receba em primeira mão, e com prioridade, os conteúdos Android exclusivos do Blog.
Email inválido

Opa, blz?

Nesse vídeo apresento uma maneira de carregar dados da Web e apresentá-los no ListView no Android, mais precisamente carregar dados utilizando OnScrollListener e Volley quando o usuário alcançar o último item do ListView, muito conhecido como "carregar mais". No vídeo utilizo a mescla de várias entidades como: Volley, Universal Image Loader, ListView Listeners (OnItemClickListener e OnScrollListener) e Interface Java. No vídeo mostro o carregamento somente quando o último item do ListView é apresentado na tela, porém esse é um item de escolha baseado nas requisições de seu projeto.

Entenda a importancia da flag isThereMore, pois ela não somente evita a tentativa de carregamento quando não há mais dados a serem carregados, na verdade ela evita o uso desnecessário de conexão Web (poupando créditos 3G em alguns casos) e consequentemente o consumo extra de bateria. O ProgressBar utilizado tem um o papel de informar ao usuário que algo está acontecendo no background, no caso, o carregamento de mais itens. Fique atento a parte do script PHP também, pois há necessidade de criarmos um filtro nele baseado nos dados que eviamos para o server Web para obter mais carros. No caso fique atento quanto a lógica de filtro utilizada, pois a linguagem de backend pode ser qualquer uma (Java, PHP ou Python, por exemplo). Então é isso, vou evitar mais delongas e deixar você assistir ao vídeo.

O link para download do projeto se encontra logo abaixo no post.

Segue links úteis que lhe ajudarão a entender as entidades utilizadas nesse vídeo:

Utilizando BaseAdapter Para Personalização Completa da ListView

Volley no Android, Entendendo e Utilizando

Carregamento e Cache de Imagem Com Universal Image Loader no Android

Parcelable no Android, Entendendo e Utilizando

Segue link da página apresentada no vídeo:

Página do listener OnScrollListener no site oficioal do Android

Vlw

Receba em primeira mão, e com prioridade, os conteúdos Android exclusivos do Blog.
Email inválido

Relacionado

Cortando Imagens Com a Lib Cropper no AndroidCortando Imagens Com a Lib Cropper no AndroidAndroid
TextJustify Lib Com SpannableString no AndroidTextJustify Lib Com SpannableString no AndroidAndroid
Slides no Android Com a Lib AndroidImageSliderSlides no Android Com a Lib AndroidImageSliderAndroid
Ícones Com Bootstrap Lib no AndroidÍcones Com Bootstrap Lib no AndroidAndroid

Compartilhar

Comentários Facebook (11)

Comentários Blog (16)

Para código / script, coloque entre [code] e [/code] para receber marcação especifica.
Forneça seu nome válido.
Forneça seu email válido.
Forneça o comentário.
Enviando, aguarde...
Wanderson Sangreal (1) (0)
28/01/2016
Oppa Vinícius, tranquilo!?

Então cara, vi o vídeo esses dias pois estava precisando implementar  essa ideia e resolvi utilizar as dicas do vídeo com Volley. O problema é que algumas bibliotecas que o Volley utiliza já não estão sendo mais utilizadas depois da v5.1 do android, que são as do org.apache.http.*, mais precisamente no arquivo "android-volley/src/main/java/com/android/volley/toolbox/BasicNetwork.java".

Mesmo utilizando a ultima versão 1.0.19 ele não consegue fazer a requisição e retorna 404, no arquivo VolleyConn (do vídeo).

Vi que está especificado nos "commites" que foi corrigido e mudaram para "HttpURLConnection", só que talvez não tenham mudado esse arquivo (BasicNetwork.java) em particular.

A questão é, o que posso fazer exatamente para suprir esse erro e fazer com que funcione nas novas versões (6.*), pelo menos de mudanças relacionadas ao vídeo, ou fazendo Override nessa classe em específico...!? Lembrando que iniciei com desenvolvimento em android a pouco e tempo e não tenho muito conhecimento nem liberdade suficiente pra fazer isso... Muito obrigado desde já!
Responder
Vinícius Thiengo (0) (0)
30/01/2016
Fala Wanderson, blz?
Remova o Volley e utilize o Retrofit 2.0 (http://www.thiengo.com.br/library-retrofit-2-no-android ), esse é mais simples e eficiente. Abraço
Responder
Paul Polidoro (1) (0)
20/06/2015
E ai Vinícius, tudo tranquilo?
Preciso de uma ajuda sua, tenho uma lista que baixa exibe dados do tipo noticia(titulo, autor, descrição, etc), cada noticia tem o seu id especifico, quero que quando toquem no titulo da noticia abra uma activity com o id dela como parametro. Teria alguma dica??
Responder
Vinícius Thiengo (0) (0)
21/06/2015
Fala Paul, td blz sim.
Faça o seguinte, utilize uma lista de objetos Noticia, então além dos atributos titulo, imagem, descrição essa classe Noticia tb teria o atributo id. Quando o item for clicado da ListView / RecyclerView seu script acessa o item da lista de objetos do tipo Noticia, pois no listener de clique é retornada a posição que recebeu o clique, que por sinal é a mesma posição na lista de objetos. Então pegue o id e envie pela Intent que chamará a próxima Activity. Baixe algum dos últimos scripts dessa série que estou fazendo (http://www.thiengo.com.br/lib-fresco-para-carregamento-de-imagens-com-gifs-e-webps-animados-material-design-android-parte-12 ), pois lá faço algo parecido. Abraço
Responder
10/06/2015
Ôpa blz? eu queria que você fizesse um tutorial de usa alguns widget em fragments de preferência o ListView espero que possa ajudar vlw
Responder
Vinícius Thiengo (0) (0)
10/06/2015
Fala João Nicolau, blz sim.
Vc diz a View ListView sendo utilizada no fragment, por exemplo? Dê uma olhada nessa série (https://www.youtube.com/playlist?list=PLBA57K2L2RIKq7_IpaZRTL96CyLNDzF2F ), nela abordo o RecyclerView (que ;e mais eficiente que o ListView) dentro do fragment (depois de alguns vídeos essa migração de Activity para fragment acontece). Dê uma olhada. Abraço
Responder
16/10/2015
Vlw pela dica gosto muitos dos seus videos obs:se escreve com i no final, "Nicolai" kkk
Responder
27/05/2015
Bom dia Thiengo ! tudo tranquilo. Parabéns pelo vídeo , testando o projeto percebi que a aplicação ao trazer mais registros  para preencher a tela  acaba carregando novamente alguns imagensLoader que já tinham sido exibidos,  Dá a ideia de que ele está processando novamente os registros que já foram carregados.  Na classe CarAdapter eu removi o setimagebitmap  no holder e aparentemente deu uma melhorada.  Aproveitando como sugestão  esse projeto utilizando o Recyclerview no lugar do listview ficaria show de bola. Obrigado !
Responder
Vinícius Thiengo (1) (0)
27/05/2015
Fala Luiz, blz sim.
A ideia foi essa mesmo, não coloquei mts itens no servidor, apenas alguns, depois ele começa a repetir. Vlw a dica do Recycler, estou para fazer ele mesmo. Abraço
Responder
Davi Menezes (1) (0)
09/03/2015
Eae Thiengo blz? Tem algum vídeo que você fala sobre o porque você não usa o ImageLoader do Volley e sim do UniversalImageLoader? neste vídeo vc usa do UniversalImageLoader. Queria saber por quê. Abç e obrigado pelo post.
Responder
Vinícius Thiengo (1) (0)
10/03/2015
Fala Davi, blz?
No vídeo do Universal Image Loader falei que se vc para escolher optaria por ele, mas depois daquele vídeo tive relato de a lib não funcionar mt bem e sigo um canal no YouTube (slidnerd) onde o camarada tb utiliza o ImageLoader... e utilizando em meus scripts agora realmente o ImageLoader é aparentemente a melhor forma de carregar imagens, porém ando utilizando tb o picasso (https://github.com/square/picasso ), que é mt bom e ainda tem efeito de fade (padrão Material Desing) e nos permite utilizar bordas arredondas de fora mais tranquila, mas mesmo assim notei que para carregar a imagem o ImageLoader é ainda mais poderoso. Abraço
Responder
wiliam (3) (0)
23/02/2015
Fala Thiengo tudo blz? Cara existe a possibilidade de eu importa esse projeto no eclipse?
Responder
Vinícius Thiengo (1) (0)
24/02/2015
Fala Wiliam, blz sim.
O que pode fazer é copiar as classes e pacotes Java do projeto, setar o Volley no Eclipse e então rodar o seu novo projeto, pois a conversão automática de AndroidStudio para Eclipse se não me engano não tem como realizar, pois o Eclipse não dá esse suporte. Abraço
Responder
06/02/2015
Boa tarde,
Ótimo tutorial, mas estou com uma dúvida... Como é que eu poderia realizar essa mesma atividade usando json e separando os resultados com itensheaders?

Abraço
Responder
Vinícius Thiengo (2) (1)
07/02/2015
Fala Igor, blz?
O exemplo está trabalhando com os dados sendo devolvidos em string, mas o script Android entende em JSON, pois o formato da String é JSON, porém se quiser tudo em JSON (envio tb) veja os vídeos abaixo que fiz sobre esse assunto tb:

http://www.thiengo.com.br/volley-no-android-entendendo-e-utilizando

http://www.thiengo.com.br/parser-json-no-android-entendendo-e-utilizando

Quanto aos ItensHeader, na verdade a solução que vejo é seu script remoto (linguagem backend e bd) informar no JSON, pode ser via flag, para cada item se ele é um header ou apenas um item, e assim no script Android vc identifica essa condição de header e monta o ListView ou ExpandableListView corretamente. Abraço
Responder
07/02/2015
Muito obrigado pelas dicas Thiengo.. Irei estudar todos os vídeos, continuem sempre com essas ótimas aulas.
Abraço
Responder