Android Menu

Este será um post rápido onde explicarei como adicionar menus em suas aplicações Android.

Abaixo temos um exemplo de um menu em utilização, trata-se do menu do navegador de internet do Android:

Utilizando Menu no navegador Android

Para adicionar um menu em uma activity é simples, basta sobrescrever e implementar o método onCreateOptionsMenu(Menu) e adicionar os itens. O retorno do método deve ser um booleano TRUE ou FALSE indicando se o menu será ou não exibido.

O atributo android.view.Menu que é passado com paramêntro para o método onCreateOptionsMenu(Menu) será utilizado para adicionar os itens atraves do método add, conforme exemplo abaixo:

Implementação do método onCreateOptionsMenu(Menu)

Conforme explicado anteriormente o método add(int groupId, int itemId, int order, CharSequence title) é utilizado para adicionar os itens ao menu, ele recebe quatro parâmetros, onde:

groupId: Defini a qual grupo o menu deve pertencer.

itemId: Identificador único para o item. O valor Menu.NONE é utilizado caso não seja necessário um identificador.

order: Indica em qual ordem o item deve aparecer. O valor 0 (ZERO) caso não seja necessário ordernar.

title: Representa o texto que aparecer no item.

Observe que algumas constantes (CRIAR, ALTERAR e PESQUISAR) foram utilizadas para representar o identificador único de cada item. Estas constantes  serão utilizadas posteriormente para manipular o evento de clique/toque no item.

Ao executar esta activity e pressionar o botão menu do celular o resultado abaixo é visualizado:

Clique no botão menu

Vamos implementar o método onMenuItemSelected(int featureId, MenuItem item) que será invocado pelo android sempre que o usuário clicar sobre algum dos itens. O retorno do método deve ser um booleano TRUE ou FALSE. O TRUE indica se o processo de seleção finalizará ou FALSE para executar o processo de manipulação normal.

Implementação do método onMenuItemSelected(int featureId, MenuItem item)

Ao clicar sobre um dos itens o android invocará o método onMenuItemSelected(int featureId, MenuItem item), onde o parâmetro item representa uma instância do MenuItem selecionado pelo usuário. Na implementação utilizo as constantes para verificar qual item foi selecionado.

Submenus

Tinha terminado o post quando lembrei que existe a possibilidade de adicionar itens que atuam como submenus, o processo de adição é simples, basta utilizar o método addSubMenu(String) no android.view.Menu passado como paramêtro, por exemplo:

 

Adicionado SubMenu

O resultado será um item de menu chamado “Sobre” que ao ser acessado mostrará um sub menu conforme imagem abaixo:

E é isso pessoal, a criação de Menu e SubMenus é bem simples, ate a próxima.


6 Respostas

  1. Fala Ythalo,
    Muito “tri” teus posts sobre Android, estou acompanhando e vendo a hora que tomarei coragem pra fazer um hello world tb ;)

    Cara tu sabes me dizer se eu tiver um smartphone Android, posso jogar minha app direto do meu PC depois de compila-la no telefone ou tem que passar pela AndroidMarket?
    Ex.: Posso fazer meu software corporativo pra Android ou simplesmente passar pros colegas de escritório uma app de bobeira?

    Valeu.

    • Quem bom que gostou, obrigado.

      Vamos lá, começe a desenvolver hoje a noite, é simples, também estou no aprendizado.

    • Olá Jean,

      O desenvolvimento é baseado na versão do android que roda no seu smartphone, não precisa passar pelo Android Market. Você desenvolve no PC, geralmente utilizando o eclipse com o plugin ADT, e envia para seu celular.

  2. Ythalo, parabéns pelo post! Muito útil!

    Implementei seu exemplo e percebi que o texto “Criar” do “Toast.makeText(…)” aparece quando seleciono o menu Sobre. Você teria alguma sugestão?

    A mesma coisa aparece quando seleciono um submenu, mas aqui consegui remover esse texto colocando um “default” no switch sem escrever nada (apenas o comando break).

    Abraço e bons estudos!

  3. Uma pequena sujestão. Não tem como disponibilizar este tutorial em arquivos pdf para que possamos baixar para consulta futuras.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Sair / Alterar )

Imagem do Twitter

You are commenting using your Twitter account. Sair / Alterar )

Foto do Facebook

You are commenting using your Facebook account. Sair / Alterar )

Connecting to %s

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.