Baixe o app para aproveitar ainda mais
Prévia do material em texto
PROGRAMAÇÃO MOBILE Aline Zanin Menus e views para coleções de dados Objetivos de aprendizagem Ao final deste texto, você deve apresentar os seguintes aprendizados: Descrever os componentes de menu do Android. Diferenciar as views para coleções no Android. Ilustrar a aplicação de componentes de menu e views. Introdução A programação de um aplicativo Android é realizada fazendo-se uso de uma linguagem de programação, de alguma ferramenta para desen- volvimento e de componentes utilizados para construção de layouts. As principais linguagens de programação para Android são Java e Flutter, por serem as duas linguagens suportadas pelo principal Integrated Deve- lopment Environment (IDE) (ou “ambiente de desenvolvimento integrado”) para desenvolvimento Android, o Android Studio. No Android Studio, a construção de interfaces (telas) dos aplicativos pode ser feita manualmente ou utilizando-se uma ferramenta visual que permite arrastar os elementos de uma paleta de componentes para a tela. Neste capítulo, você vai estudar sobre a criação de views e menus diretamente no código fonte, utilizando a linguagem XML. 1 Componentes de menu Os componentes de menu, como diz o nome, permitem a adição de menus em um aplicativo. Os menus são mecanismos existentes para facilitar o acesso a diversas funcionalidades que necessitam de acesso rápido nos aplicativos. O Android possui três tipos principais de menus que podem ser utilizados nos aplicativos, sendo eles: menu de opções e barra de aplicativos, menu de contexto e menu pop-up. A Figura 1 ilustra esses menus. Figura 1. Tipos de menus. (a) Menu de opções e barra de aplicativos; (b) modo de ação contextual e menu de contexto; (c) menu pop-up. Fonte: Adaptada de Google Developers (2019). Neste capítulo, focaremos de forma prática na criação de menu de opções. Existem duas formas de inserir um menu em um aplicativo Android: uma delas é criando o menu no arquivo de layout; e a outra é fazer a criação do menu diretamente no código Java. Inserindo um menu Para inserção de um menu em um aplicativo Android precisamos fazer dois processo: o primeiro é a criação do XML, e o segundo é a programação Java. O XML do menu é criado em um local separado do XML das telas, isto porque o menu poderá e deverá ser utilizado em diversas telas. Criação do arquivo .xml — Antes de criar o arquivo menu.xml, criaremos um diretório, onde este arquivo será armazenado. Para isso, clique com o botão direito na pasta res e, então, clique em New > Android Resource Directory. Neste momento será aberta uma nova janela; nesta janela, deverá ser selecio- nada a opção menu, no item Resource Type. Uma vez criado o diretório menu, clique com o botão direito no diretório menu (recém criado) e então clique em New > Menu Resource File e insira menu no fi le name. Este processo pode ser visualizado na Figura 2. Menus e views para coleções de dados2 Uma vez criado o arquivo xml de menu, vamos inserir um elemento do tipo item que depois através do java receberá todos os itens que constarão no menu. Utilizaremos o código a seguir: Figura 2. Criação de diretório para arquivo menu.xml. 3Menus e views para coleções de dados Confi guração no arquivo .java — Em uma aplicação Android, para cada tela criada (arquivos .xml criados na pasta res/layout) é criada uma classe Java de mesmo nome na pasta Java. Em toda classe que representa uma tela existe um método gerado pelo próprio Android Studio chamado Oncreate. Este método é iniciado quando a tela é aberta, e é ele que defi ne o que será exibido. Os menus são criados pela activity que está ativa quando o botão menu é pres- sionado. Ao pressionar um botão é chamado o método onCreateOptionsMenu, que recebe como parâmetro um objeto do tipo menu e é preenchido com os itens do menu. Este método não é gerado de forma automática, você precisa programá-lo; contudo ele será uma sobrescrita de um método já existente em uma biblioteca Java. O método onCreateOptionsMenu recebe como parâmetro um objeto do tipo Menu, no qual precisamos popular as opções de acordo com as infor- mações do XML que acabamos de criar, que se encontra dentro de res/menus. Para isso, é preciso passar os dados do XML para o objeto recebido como parâmetro, que é justamente o papel de uma classe chamada MenuInflater (DEITEL; DEITEL; WARD, 2016; MONTEIRO 2012). Agora, adicionaremos os itens de menu com o comando menu.add. Criaremos um item sair e um item voltar e, depois, adicionaremos uma linha de código (MenuInflater) que relacionará o arquivo de xml que criamos anteriormente com este código Java, e passar os dados do XML para o objeto recebido como parâmetro. O código então ficará assim: Menus e views para coleções de dados4 2 Views no Android: ListView e GridView Veremos agora algumas das views disponíveis no Android, bem como suas aplicabilidades. Para simplifi car o conceito de views, entenderemos que a view é um retângulo na tela utilizado para exibir algum conteúdo. Este conteúdo pode ser uma imagem, um pedaço de texto, um botão, uma lista ou qualquer outra coisa que o aplicativo desejar exibir. Todas as views juntas formam o layout da interface de um aplicativo (CORDEIRO, [2016?]). Diversos são os tipos de views que podem ser utilizados em um aplicativo Android. Neste capítulo conheceremos sete delas, e depois exploraremos em detalhes a utilização das views para coleções ListView e GridView: TextView: utilizado para exibir um de texto análogo a uma label em sistemas web; ImageView: utilizado para exibir uma imagem; Button: utilizado para criação de botão; ao ser clicado efetua alguma ação; ImageButton: tem ação de botão, mas é exibido como uma imagem; EditText: é um campo de texto editável para a entrada de dados; ListView: utilizado para criação de listas; GridView: utilizado para a representação de um grid. A ListView e o GridView são as implementações mais conhecidas de view para coleções, isto é, de views que permitem representar múltiplos valores. ListView e GridView podem ser utilizadas para os mesmos tipos de dados e objetivos de utilização, contudo, a ListView, como sugere o nome, é utilizada para criação de interfaces em lista, e o GridView para criação de interfaces que representam tabelas, contendo linhas e colunas. 5Menus e views para coleções de dados A Figura 3 ilustra este cenário para uma lista de nomes de pessoas, sendo à esquerda exibida a aplicação Android com um ListView, e à direita a mesma aplicação Android com um GridView. A aplicação demonstrada nesta figura será também demonstrada passo a passo posteriormente. No exemplo demonstrado na Figura 3, é utilizada uma lista de strings, contudo, listas e grids podem ser utilizados para os mais diversos tipos de aplicações, como por exemplo, botões, imagens, links, etc. Figura 3. Layouts ListView e GridView. 3 Criação e utilização de ListView e GridView ListView e GridView são elementos utilizados no Android para exibição de conteúdo complexo, isto é, de conteúdo que não é único como uma label, mas completo como uma tabela ou uma lista. Assim como qualquer objeto inserido da interface de um aplicativo Android, para manipulação de ListView é ne- cessário criar um código Java e inserir valores em um arquivo xml. Desta forma, interagiremos com código Java e xml, criaremos uma lista de objetos e, através de um adapter, inseriremos esta lista em um ListView. O ListView tem uma função muito similar à classe ListActivity. Utilizando-se ListActivity, contudo, a Lis ocupará toda a tela, não po- dendo ser utilizada com outros elementos. Já o ListView permite a utilização conjunta a outros elementos. O ListView é parte da classe ListActivity (LECHETA, c2016). Menus e views para coleções de dados6 Adapter é uma estrutura utilizada para formatar views, popularmente utilizado com ListView e GridView. Ele é utilizado porque, pelo padrão de um ListView ou GridView, sem adapter é possivelpenas exibir uma lista simples de palavras, contudo com apdater você pode, por exemplo, inserir imagens ou mostrar outros tipos de informações. O Android fornece algumas implementações de adapters que podem ser utilizadas, sendo os principais: SimpleCursorAdapter, ArrayAdapter e CursorAdap- ter. Todos eles permitem formatar views, contudo, o ArrayAdapter apenas permite manipular dados com base em listas ou arrays. Já o Sim- pleCursorAdapter e o CursorAdapter permitem manipular dados vindos de banco de dados (CORDEIRO, [2017?]). Criação da Estrutura XML para ListView Em seu projeto no Android Studio, crie uma nova activity do tipo Empty Activity, e dê a ela o nome de ListaPessoasActivity.xml. Uma vez criada esta nova activity, abra-a e acesse a edição via código (disponível no canto superior direito, neste símbolo ). Remova o elemento TextView que foi inserido automaticamente pela plataforma, para que possamos utilizar a interface toda para o ListView. No Android Studio, a criação de uma nova activity deve ser feita no diretório src\main\ res\layout, que é o diretório que armazena os arquivos de layouts. Activity é o nome dado para uma classe que contém xml de layout. Para inserir um ListView você deve utilizar o seguinte código: 7Menus e views para coleções de dados Ao digitar <ListView e teclar enter, você verá que as próximas duas linhas serão inseridas automaticamente e trarão o valor wrap_content para os parâmetros layout_width e layout_height. Estes parâmetros são configurações de tamanho de campo, sendo que wrap_content representa que o elemento ocupará apenas o espaço que ele precisar, não ocupando a tela toda. Vamos alterar este valor para math_parent, que significa que o elemento utilizará todo o espaço disponível na tela. Além disso, foi inserido um ID, que é o que nos permite localizar este ListView nas próximas etapas. O ID é inserido através do seguinte código: android:id="@+id/ lbDescricao", completando o código com sintaxe a seguir. Implementação Java para ListView Ao criar a Activity.xml (chamada de ListaPessoasActivity.xml), a IDE au- tomaticamente gerará uma classe java com o mesmo nome e a extensão .java, ou seja, ListaPessoasActivity.java. Abra esta classe, e dentro dela existirá um mé- todo chamado onCreate; dentro dele vamos primeiramente inserir o código que re- laciona o ListView criado no XML com o código Java, através do ID que foi criado no xml, ou seja, o listPessoa (linha 5). Depois, precisamos criar a lista que será exi- bida na tela. Faremos isso logo abaixo do ListView inserido anteriormente (linha 6). Na sequência, criaremos o adapter. Como estamos utilizando uma lista de dados baseada em array, utilizaremos simple_list_item_1 (linha 7). Por fi m, atribuiremos o adapter para a ListView (linha 8). Implementaç ã o de GridView Caso deseje exercitar a criação de GridView, a implementação é bem similar, sendo necessário pequenos ajustes. O primeiro ajuste é no xml, onde é necessário alterar de ListView para GridView. A segunda alteração é no Java, onde também no lugar de ListView deverá ser utilizado GridView, conforme segue: Menus e views para coleções de dados8 CORDEIRO F. ListViews: aprenda, entenda e use sem moderação. [2017?]. Disponível em: https://www.androidpro.com.br/blog/desenvolvimento-android/listviews/. Acesso em: 24 abr. 2020. CORDEIRO, F. Saiba como usar as Android Views da forma correta. [2016?]. Disponível em: https://www.androidpro.com.br/blog/desenvolvimento-android/android-views-intro/. Acesso em: 24 abr. 2020. DEITEL, P.; DEITEL, H.; WALD, A. Android 6 para programadores: uma abordagem baseada em aplicativos. 3. ed. Porto Alegre: Bookman, 2016. GOOGLE DEVELOPERS. Menus. 2019. Disponível em: https://developer.android.com/ guide/topics/ui/menus?hl=pt. Acesso em: 24 abr. 2020 LECHETA, R. R. Google Android: aprenda a criar aplicações para dispositivos móveis com o Android SDK. 5. ed. São Paulo: Novatec, c2016. MONTEIRO, J. B. Google Android: crie aplicações para celulares e tablets. São Paulo: Casa do Código, 2012. 9Menus e views para coleções de dados Os links para sites da web fornecidos neste capítulo foram todos testados, e seu fun- cionamento foi comprovado no momento da publicação do material. No entanto, a rede é extremamente dinâmica; suas páginas estão constantemente mudando de local e conteúdo. Assim, os editores declaram não ter qualquer responsabilidade sobre qualidade, precisão ou integralidade das informações referidas em tais links. Menus e views para coleções de dados10
Compartilhar