Exibindo Itens Em Uma Lista No Android _ MobGeek

download Exibindo Itens Em Uma Lista No Android _ MobGeek

of 9

description

Exibindo Itens Em Uma Lista No Android _ MobGeek

Transcript of Exibindo Itens Em Uma Lista No Android _ MobGeek

  • Exibindo itens em uma lista no AndroidAprenda a construir esse importante recurso para qualquer app Android.

    No post de hoje, vamos aprender a construir uma interface de tela muito usada em dispositivos mveis: aexibio de itens em uma lista. O Android mesmo usa muito esse recurso, como podemos ver em sua tela deconguraes:

    Programando sua aplicao

    Para comear, crie uma nova aplicao seguindo as telas abaixo:

    Como funciona? (/como-funciona) Cursos (/cursos) Blog (/blog) Cadastro (/cadastro) Entrar (/login)

  • V at o cdigo da classe ActLista, localizado dentro da pasta /src. Aqui faremos nossa primeira mudana.

    Estamos acostumados a criar nossas prprias interfaces de tela usando um arquivo XML. Para isso, nossa classe:

    Estende a classe Activity

    publicclassActListaextends

    Envia nosso recurso XML para a tela do dispositivo

    (..);

  • Alm da classe Activity que estamos acostumados, o Android-SDK e o Google APIs nos oferece outras classes,feitas para facilitar nosso trabalho em casos especcos, como por exemplo:

    MapActivity: til para exibir mapas na tela.ListActivity (http://developer.android.com/reference/android/app/ListActivity.html): til para exibio de listas na tela.

    Hoje, nossa classe ActLista vai herdar a classe ListActivity, fazendo com que nosso cdigo que escrito assim:

    publicclassActListaextends{

    protectedvoidonCreate(){super.();}}

    Veja que tiramos at a linha responsvel por enviar um recurso para a tela do dispositivo (setContentView). Nossoexemplo no vai precisar de um arquivo XML separado, j que a prpria classe ListActivity j implementa umobjeto do tipo ListView (http://developer.android.com/guide/topics/ui/layout/listview.html), responsvel porcolocar os itens em formato de lista, at mesmo com recursos de scrolling.

    No prximo passo, vamos denir os itens que sero exibidos na lista. Esses itens podem ter diferentes origens:um arquivo XML, uma consulta a um banco de dados, uma consulta a um WebService, etc. A forma mais simplesde criarmos esses itens atravs de um array de Strings:

    privatestaticfinal[]=new[]{,,,};

    Agora, devemos manipular um objeto adaptador. Objetos adaptadores so responsveis por fazer a ligaoentre a fonte de dados e a nossa lista. Aqui, o Android-SDK tambm nos d vrias classes que podemos usarbaseados na origem da fonte de dados. Podemos at criar nossa prpria classe adaptadora. Para esse exemplo,usaremos a classe ArrayAdapter (http://developer.android.com/reference/android/widget/ArrayAdapter.html),responsvel por fazer a ligao quando nossa fonte de dados um array de objetos. Note que, mesmo usandoum array de Strings, podemos usar um array, j que essa classe adaptadora utiliza o mtodo toString() paraconsultar qual o texto que ser exibido na lista.

    Declaramos o objeto adaptador e invocamos seu construtor para inicializ-lo:

    private;

    =new(this,...,);

    Nesse exemplo, passamos trs parmetros para o construtor:

    O primeiro o contexto, de valor this.O segundo a interface de tela usada para montar a lista. Como j vimos, podemos montar nossa prpria interface atravs de um arquivo

    XML. Para os casos mais simples como este, onde exibiremos apenas 1 texto por linha, o prprio Android-SDK nos d esta interface, acessadapor android.R.layout.simplelistitem_1.

    O terceiro parmetro a fonte de dados, nesse caso, nosso array de Strings.

    Por ltimo, precisamos ligar a lista com o nosso adaptador. Para isso, escrevemos o cdigo:

  • ();

    Veja que nossa classe ActLista tem o mtodo setListAdapter, que foi herdado da classe ListActivity.

    Neste momento, nossa classe deve estar com o seguinte cdigo:

    publicclassActListaextends{

    privatestaticfinal[]=new[]{,,,};private;

    protectedvoidonCreate(){super.();

    =new(this,...,);();}}

    Executando nosso aplicativo, devemos ver a seguinte tela:

    Para terminar nosso exemplo, precisaremos identicar quando o usurio seleciona um item da lista. Consultandoa documentao da classe ListActivity, podemos ver que ela j possui um mtodo declarado para essasituao: onListItemClick (http://blog.mobgeek.com.br/post/43647568070/exibindo-itens-em-uma-lista-no-android#onListItemClick(android.widget.ListView,%20android.view.View,%20int,long)).

    Vamos implementar este mtodo:

  • protectedvoidonListItemClick(,,int,long){super.(,,,);

    }

    O parmetro position nos retorna a posio do item selecionado. Agora podemos acessar o item escolhido de 2formas diferentes:

    Acesso direto em nossa fonte de dados

    .(this,+[],.).();

    Acesso pelo adaptador, til em situaes em que nossa fonte de dados no esteja disponvel (arquivo fechado ou fonte de dados fora deescopo, por exemplo) ou quando a fonte de dados no est organizada em uma estrutura de dados indexada, tornando o acesso diretoimpossvel.

    =this.().().();.(this,+,.).();

    Para quem est comeando a estudar o Android-SDK, a classe Toast(http://developer.android.com/guide/topics/ui/notiers/toasts.html) nos deixa mostrar uma mensagem para ousurio, que ca na tela por pouco tempo e depois desaparece automaticamente.

    Como podemos ver no cdigo acima, fazer com que esse tipo de mensagem aparea muito simples. Bastainvocarmos o mtodo makeText, passando 3 parmetros:

    Contexto (http://developer.android.com/reference/android/content/Context.html): Neste exemplo, nossa prpria Activity;Mensagem: String com a mensagem a ser exibida;Tempo de durao: Tempo em milissegundos em que mensagem dever car na tela. Para padronizarmos este tempo, a classe Toast nos

    d duas constantes:Toast.LENGHTSHORT: Usada para mensagens curtas;Toast.LENGHTLONG: Usada para mensagens longas;

    Por m, invocamos o mtodo show() para a mensagem aparecer na tela:

    .(this,!,.).();

    Obs.: O mtodo makeText esttico, por isso no ser preciso instanciar um objeto para invoc-lo.

    Veja o mtodo completo:

    protectedvoidonListItemClick(,,int,long){super.(,,,);

    =this.().().();.(this,+,.).();}

    Veja como nossa lista apareceria na tela do Android:

  • Concluso

    Neste post, vimos como exibir itens em uma lista. Ao mesmo tempo que um exemplo bsico, listas so teis emuito poderosas. Com elas:

    Podemos denir nossos prprios layouts, mesclando imagens e textos;Deixar o usurio selecionar vrios itens da lista, j que elas suportam at mesmo controles com interao com o usurio, por exemplo o

    controle CheckBox;Podemos usar o recurso Lazy Load para otimizar a performance quando muitos itens sero carregados na lista. Os itens so carregados

    sob demanda cada vez que o usurio atinge o nal da lista.

    Espero que o tutorial tenha sido til para voc, que est tendo seu primeiro contato com o recurso de listas.

    O cdigo-fonte do nosso exemplo pode ser baixado clicando aqui (http://yousend.it/WYX06B).

    At a prxima!

    Abraos.

    Suemar verton especialista em Segurana da Informao em Redes de Computadores e Sistemas. Tem 12anos de experincia em programao para desktop, e 3 anos atrs resolveu mergulhar de cabea no mundomobile. Hoje Analista de Sistemas na Universidade do Oeste Paulista e desenvolvedor freelancer. Nas horasvagas, gosta de pedalar e fotografar o mundo o-line. Linkedin (http://www.linkedin.com/prole/view?id=52573305)

    Tags: Tutorial (/blog/tag/Tutorial) Android (/blog/tag/Android) UI (/blog/tag/UI)

  • ComentriosFRPHQWiULR &ODVVLILFDUSRU

    5RGULJR)HUUHLUD8QLPHS8QLYHUVLGDGH0HWRGLVWDGH3LUDFLFDED2ILFLDO%RDQRLWHPXLWRERPRSRVW*RVWDULDGHVDEHUFRPRIDoRSDUDDGLFLRQDULWHQVQRDUUD\TXHRSUySULRXVXiULRGLJLWRXH[HPSORSHJDURTXHWH[WRGLJLWDGRHPXP(GLW7H[WHLQVHULUQR$UUD\DWUDYpVGR6HW2Q&OLFN/LVWHQHUGHXPERWmRSRUH[HPSOR"

    &XUWLU5HVSRQGHU GHMDQHLURGH

    )DFHERRN&RPPHQWV3OXJLQ

    3ULQFLSDLV

    $GLFLRQDUXPFRPHQWiULR

    RSS (/blog/feed)

    Newsletter

    Receba as novidades da MobGeek!

    Nome

    E-mail

    Quero receber!

    (/cursos)

    Tags

    Titanium (/blog/tag/Titanium) aplicativo (/blog/tag/aplicativo) app (/blog/tag/app)

    front-end (/blog/tag/front-end) produto (/blog/tag/produto) carreira (/blog/tag/carreira)

    mercado (/blog/tag/mercado) Git (/blog/tag/Git) Tutorial (/blog/tag/Tutorial) startup (/blog/tag/startup)

    empreendedorismo (/blog/tag/empreendedorismo) desenvolvedor (/blog/tag/desenvolvedor)

    HTML-5 (/blog/tag/HTML-5) Android (/blog/tag/Android) internet das coisas (/blog/tag/internet%20das%20coisas)

    iPhone (/blog/tag/iPhone) tablet (/blog/tag/tablet) UI (/blog/tag/UI) iOS (/blog/tag/iOS)

    Swift (/blog/tag/Swift) Java (/blog/tag/Java)

    Sobre a MobGeek

  • 2FLARES (https://www.facebook.com/sharer/sharer.php?u=http://mobgeek.com.br/blog/exibir-itens-lista-android)2(https://twitter.com/intent/tweet?url=http://mobgeek.com.br/blog/exibir-itens-lista-android&text=Exibindo%20itens%20em%20uma%20lista%20no%20Android%20-%20MobGeek)0(https://plus.google.com/share?url=http://mobgeek.com.br/blog/exibir-itens-lista-android)0(https://www.linkedin.com/cws/share?url=http://mobgeek.com.br/blog/exibir-itens-lista-android)0 (mailto:?body=%0D%0A%0D%0Ahttp://mobgeek.com.br/blog/exibir-itens-lista-android&subject=Check out this great article Ifound!)0 (http://lament.io/are?utm_source=are_lite&utm_medium=deployment&utm_campaign=lament&utm_content=mobgeek.com.br/blog/exibir-itens-lista-android)02FLARES

    (http://www.facebook.com/MobGeek) (https://plus.google.com/u/0/103933817258000015758)

    (https://twitter.com/MobGeekBrasil) (https://www.youtube.com/user/mobgeekbrasil/)

    Cursos (/cursos)

    Fale conosco (https://mobgeek.zendesk.com/hc/pt-br/requests/new)

    Sobre ns (/sobre)

    Perguntas Frequentes (https://mobgeek.zendesk.com/hc/pt-br/)

    Poltica de Privacidade (/politica-de-privacidade)

    Termos de Uso (/termos-de-uso)

    Quer trabalhar com a gente? (https://mobgeek.zendesk.com/hc/pt-br/requests/new)

    MobGeek Campus (/campus)

    DPLJRVFXUWLUDPLVVR

    0RE*HHNPLOFXUWLGDV&XUWLU3iJLQD