Cursos / Informática para Internet / Dispositivos Móveis / Aula

arrow_back Aula 07 - Interfaces Gráficas III

Menus no Android

É padrão nos aparelhos rodando versões anteriores ao Android 3.0 a presença de uma tecla Menu. Ao pressionar essa tecla, os usuários Android ativam o menu da aplicação. Esse menu contém funções de configuração ou mesmo novas opções de utilização da aplicação. Em versões posteriores à versão 3.0, incluindo esta, as aplicações ganharam uma barra de ações que corresponde a esse menu. Estudaremos agora quais as opções que temos para agregar esses menus às nossas aplicações.

Options Menu

O menu de opções é o modelo principal de menus no Android. Cada menu desses está relacionado a uma Activity. É nesse menu que as ações que afetam toda a aplicação devem ser colocadas, como por exemplo, "escrever e-mail" em uma aplicação de gerenciamento de e-mails. A qualquer momento você pode querer escrever um novo e-mail e essa opção pode ser invocada rapidamente, através da tecla de menu ou da opção equivalente na barra de ações do aplicativo.

Em aplicações voltadas a versão 2.3 ou anterior, ao pressionar a tecla de menu, o usuário terá o menu lançado em frente a Activity ativa, na parte inferior do aparelho. Esse menu tem capacidade de exibir até seis itens, como é visto na Figura 2.

Menu em versões anteriores a versão 2.3.

Caso mais de seis itens estejam alocados no menu, o sexto item do menu será substituído por um item padrão de Mais, que indica o acesso a outros elementos. Ao ser acionado, esse item lança uma lista de opções que flutua sobre a aplicação e contém todas as opções do menu. Em versões a partir da 3.0, esse menu foi substituído por um semelhante, adicionado à ActionBar. Veremos esse menu adiante.

Para adicionar um Option Menu à sua Activity, deve-se sobrescrever o método onCreateOptionsMenu(). Esse callback é invocado pelo Android quando o usuário pressiona a tecla de menu, ou toca na opção equivalente, requisitando assim a exibição do mesmo. A Listagem 4 mostra como deve ser implementado esse método. A Listagem 5 descreve o XML utilizado.

Para criar o diretório menu na pasta res, deve-se clicar com o botão direito na pasta res e utilizar a opção New -> Android resource directory, selecionando a opção Resource Type como Menu na janela que for aberta.

Listagem 4 – Implementação do onCreateOptionsMenu.
Listagem 5 – Arquivo menu.xml, localizado na pasta res/menu

O menu implementado acima inclui apenas um item, como pode ser visto no xml da Listagem 5. Esse item é responsável por carregar as opções de configuração do aplicativo. Veja que existem diversas opções de personalização nos itens do menu. Do mesmo jeito que nos layouts, essas opções devem ser declaradas dentro do espaço do <item>. Todas as opções para essa parte do menu podem ser vistas utilizando o recurso auto completar do Android Studio. Porém, como declarado, o programa ainda não tem ideia do funcionamento do menu e tratamento dos cliques, apenas de sua existência. Para garantir o correto funcionamento do menu, devemos implementar o método onOptionsItemSelected(), como visto na Listagem 6.

Listagem 6 – Implementação do onOptionsItemSelected()

A função onOptionsItemSelected() identifica o item que foi selecionado através de seu parâmetro e é através dele que devemos configurar as ações a serem tomadas, de acordo com o que desejarmos. No exemplo, uma nova Activity é lançada para permitir ao usuário configurar as opções que desejar. Lembre-se de criar essa Activity chamada AplicationPreferences no seu projeto, caso esteja seguindo o exemplo.

Um último ponto a ser conhecido em relação ao menu de opções é a alteração deste em tempo de execução. Durante a execução de sua aplicação pode surgir a necessidade de alterar os itens do menu. Porém, uma vez criado, o menu não é criado novamente ao ser reinicializado, ou seja, não é possível colocar essas mudanças no onCreateOptionsMenu(). Ao invés disso, a função onPrepareOptionsMenu() deve ser utilizada. Essa função é chamada toda vez que um menu precise ser alterado.

Os Option Menus são bastante utilizados em todos os tipos de aplicação, desde jogos até aplicações de gerência de informações. Por ser um comportamento padrão, espera-se dos usuários Android buscar a tecla menu ou o ícone equivalente sempre que sentem a necessidade de alteração de uma informação porém não encontram a opção em tela.

Versão 5.3 - Todos os Direitos reservados