Um menu de contexto é conceitualmente similar ao menu mostrado quando o usuário clica com o botão direito no PC. Você deve usar menus de contexto dar acesso aos usuários às ações pertinentes a um item específico de uma interface de usuário. No Android, o menu de contexto é mostrado quando o usuário pressiona e segura por um tempo um botão ou item.
Você pode criar um menu de contexto para qualquer View, apesar de menus de contexto serem mais comuns para itens de um a ListView. Quando o usuário pressiona e segura por um tempo um item em uma ListView e a lista está registrada para prover um menu de contexto, o item da lista mostra ao usuário que um menu de contexto está disponível com uma animação em sua cor de fundo - transição do laranja para o branco antes de abrir o menu de contexto).
Para que uma View possa prover um menu de contexto, você deve registrar a view para um menu de contexto. Chame o método registerForContextMenu() e passe o nome da View à qual você quer dar um menu de contexto. Quando essa view receber a ação correta, ele mostrará o menu de contexto.
Para definir a aparência de um menu de contexto e comportamento, faça um override dos métodos de menu onCreateContextMenu e onContextItemSelected.
Por exemplo, aqui está o método onCreateContextMenu() que usa o recurso context_menu.xml:
@OverrideO MenuInflater é usado para inflar o menu de contexto de um menu de recurso. Os parâmetros para o método de callback incluem a View que o usuário selecionou e o objeto ContextMenu.ContextMenuInfo que provê informações adicionais sobre o item selecionado. Você deve usar esses parâmetros para determinar qual contexto de menu deverá ser criado, mas nesse exemplo, todos os menus de contexto na atividade são o mesmo.
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.context_menu, menu);
}
Então quando o usuário selecionar um item do menu de contexto, o sistema chama o método onContextItemSelected(). Aqui está um exemplo de como você pode processar itens selecionados:
@OverrideA estrutura do código acima é similar ao código do post anterior, que faz com que o getItemId() retorne o ID do item de menu selecionado e faz a verificação de qual foi selecionado para performar a ação correta.
public boolean onContextItemSelected(MenuItem item) {
AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
switch (item.getItemId()) {
case R.id.edit:
editNote(info.id);
return true;
case R.id.delete:
deleteNote(info.id);
return true;
default:
return super.onContextItemSelected(item);
}
}
Criando Submenus
Um submenu é um menu que o usuário pode abrir selecionando um item em outro menu. Você adicionar um submenu para qualquer menu (exceto um submenu). Submenus são úteis quando sua aplicação tem muitas funções que você precisa organizar em tópicos, como itens de um PC (Arquivo, Editar, Ver, etc).
Quando criar um recurso de menu, você pode criar um submenu adicionando um elemento <menu> como filho de um item <item>. Por exemplo:
<?xml version="1.0" encoding="utf-8"?>Quando o usuário seleciona um item de um submenu, o menu pai faz a seleção do método callback que recebe o evento.
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/file"
android:icon="@drawable/file"
android:title="@string/file" >
<!-- "file" submenu -->
<menu>
<item android:id="@+id/create_new"
android:title="@string/create_new" />
<item android:id="@+id/open"
android:title="@string/open" />
</menu>
</item>
</menu>
0 comentários:
Postar um comentário