martes, 13 de noviembre de 2012

Creando un menú context para elementos de ListView

Rediseñando una aplicación que estoy haciendo en Android he decidido añadir menús de contexto a los elementos de una lista (ListView).

Captura de pantalla del menú de contexto.


El primer paso como siempre ha sido buscar la solución en alguno de mis libros de Android, pero resulta que este tipo de menú no viene :(
Menos mal que existe San Google y es fácil encontrar post(API) y post al respecto. De todas formas un resumen rápido de lo que hay que hacer.

El código

Creo un menu_context.xml con las opciones que necesito.

    
     
     
    
    
    
    
    

En el fichero string.xml añado los títulos que se muestran en el menú
string.xml

Editar
Borrar
En el método onCreate llamo a registerForContextMenu
@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        registerForContextMenu(getListView());    // Hay que añadir esta linea

        }
Registro el menú en la actividad:
    @Override
    public void onCreateContextMenu(ContextMenu menu, View v,
                                    ContextMenuInfo menuInfo) {
        super.onCreateContextMenu(menu, v, menuInfo);
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.menu_context, menu);
    }
Y por último se añade el switch para manejar las opciones
@Override
    public boolean onContextItemSelected(MenuItem item) {
        AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
        switch (item.getItemId()) {
            case R.id.edit:
                // Tareas a realizar
                return true;
            case R.id.delete:
                // Tareas a realizar
                return true;
            default:
                return super.onContextItemSelected(item);
        }
    }
Y esto es todo. Post rápido al canto. Saludos.

No hay comentarios:

Publicar un comentario

Related Posts Plugin for WordPress, Blogger...