Android – Criando Menus de opções (Creating an Options Menu – onCreateOptionMenu)

options menu

 

O menu de opções é onde você deve incluir ações e outras opções que são relevantes para o contexto da atividade atual, como “Atualizar”, “Editar” e “Configurações”.

Para todos os tipos de menu o Android fornece um formato XML padrão para definir os itens. Em vez de construir um menu no código de sua atividade, você deve definir um menu e todos os seus itens em um XML. Você então infla o recurso menu (carregá-lo como um Menu de objeto) em sua atividade.

O recurso de menu em XML é uma boa prática por algumas razões:

  • É mais fácil de visualizar a estrutura do menu em XML.
  • Ele permite que você crie configurações do menu alternativas para diferentes versões da plataforma, tamanhos de tela e outras configurações, aproveitando os recursos do aplicativo.

Para definir o menu, crie um arquivo XML dentro do seu projeto na seguinte pasta res/menu/ (se a pasta menu não estiver criada, crie)

O XML de menu segue alguns padrões que podem ser observados com mais atenção AQUI (Developers – Menu). Abaixo segue um exemplo aonde vamos criar dois menus, um na ActionBar e o outro fora da ActionBar.

<?xml version="1.0" encoding="UTF-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/menu_delete"
          android:icon="@android:drawable/ic_menu_delete"
          android:title="@string/menu_delete"
          android:showAsAction="ifRoom"/>
    <item android:id="@+id/menu_edit"
          android:icon="@android:drawable/ic_menu_edit"
          android:title="@string/menu_edit" />
</menu>

Como visto acima cada item é um menu, veja o que cada atributo de “item” pode fazer:

android:id A ID do recurso que é exclusivo para o item, o que permite que o aplicativo ser capaz de reconhecer o item quando o usuário seleciona-lo.

android:icon Uma referência a um drawable para usar como ícone do item.

android:title Uma referência a uma string para usar como título do item.

android:showAsAction Especifica quando e como este item deve aparecer como um item de ação na ActionBar.

Onde os itens em seu menu de opções aparecerá na tela depende da versão para a qual você desenvolveu sua aplicação.

Na API 10 ou inferior o menu de opções sempre aparecera no rodapé do layout.

API 10
API 10

Na API 11 ou superior você tem a opção de inseri-las na action bar, por padrão essa opção não é ativada, caso queira, marque a tag android:showAsAction=”ifRoom” no seu item.

API 11
API 11

 

Para especificar o menu de opções para uma atividade você deve substituir o método onCreateOptionsMenu() ao substitui-lo você deve inflar o layout desejado através da classe MenuInflate.

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu, menu);
        return true;
    }

Para verificarmos qual item foi selecionado vamos substituir o método onOptionsItemSelected(MenuItem item):

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.menu_edit:
                Toast.makeText(this, "MENU EDIT", Toast.LENGTH_LONG).show();
                return true;
            case R.id.menu_delete:
                Toast.makeText(this, "MENU DELETE", Toast.LENGTH_LONG).show();
                return true;
            default:
                return super.onOptionsItemSelected(item);
        }
    }

Veja o resultado:

Exemplo OptionsMenu
Exemplo OptionsMenu

 

Projeto de Exemplo:(AQUI) DropBox

 

Fonte da imagem: http://goo.gl/Enpf4P
Fonte: http://goo.gl/ZRiA

Help DEV – Analista desenvolvedor Java / Android
https://helpdev.com.br/zarelli

Android – Criando Menus de opções (Creating an Options Menu – onCreateOptionMenu)

2 pensou em “Android – Criando Menus de opções (Creating an Options Menu – onCreateOptionMenu)

  1. Não é exatamente sobre esse tópico a minha pergunta… Você tem algum post relacionado à nova api (v2) do Google Maps para Android? Pelo o que eu entendi eles centralizaram os serviços do Google numa api do Google Play. Se você puder encaminhar uma breve explicação, por cima mesmo, desse novo contexto de funcionamento dos serviços Google/Android eu ficaria grato 🙂

    abraço!

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.

Rolar para o topo