Agregar campos sobre un mapa

Puede utilizar la clase RichMapField para mostrar un mapa, dicho mapa puede formar parte de una pantalla que incluya uno o más componentes de la interfaz de usuario. Puede agregar campos que no formen parte del mapa invocando RichMapField.add(). Los campos son superposiciones que no se representan directamente en el mapa.

Si la instancia RichMapField se encuentra en un contenedor que contiene a su vez otros componentes de la interfaz de usuario (por ejemplo, en un cuadro de diálogo), de forma predeterminada, RichMapField compartirá el punto focal con el resto de los componentes de la interfaz de usuario, lo cual permitirá al usuario del dispositivo BlackBerry moverse desde RichMapField a los otros componentes de la interfaz de usuario en la pantalla. Si desea convertir RichMapField en un campo exclusivo en la pantalla (por ejemplo, que el mapa se muestre a pantalla completa), debe desactivar el punto focal compartido invocando disableOperationMode(MapConstants.MODE_SHARED_FOCUS).

Puede utilizar MapConstants.MODE_FOCUS_ACTIVE para especificar que RichMapField tenga punto focal y que comparta aun así el punto focal con otros componentes de la interfaz de usuario. Si RichMapField tiene punto focal, RichMapField consume de forma activa todos los eventos de entrada, por ejemplo, un usuario que haga clic en el panel táctil. El otorgar un punto focal a RichMapField permite al usuario realizar una panorámica y ampliar el mapa sin salir de manera inadvertida del mapa y trasladarse a otros componentes de la pantalla. Si RichMapField no dispone de punto focal, RichMapField no consumirá ningún evento de entrada y el usuario podrá realizar la panorámica del mapa y mover el punto focal a otro campo en la pantalla.

Para obtener más información acerca de los componentes de la interfaz de usuario, consulte la Guía de referencia rápida de componentes de la interfaz de usuario de BlackBerry Java SDK.

Ejemplo de código: agregar un campo sobre un mapa

RichMapField map = MapFactory.getInstance().generateRichMapField();
ButtonField button = new ButtonField( "Click Here", Field.FOCUSABLE);
button.setChangeListener( new FieldChangeListener()
{
    public void fieldChanged( Field field, int context )
    {
        Dialog.alert( "Button clicked." );
    }
} );
map.add( button, 50, 50 );

Ejemplo de código: configurar RichMapField como campo exclusivo en la pantalla

RichMapField richMapField = MapFactory.getInstance().generateRichMapField();
MapField map = richMapField.getMapField();
map.getAction().disableOperationMode( MapConstants.MODE_SHARED_FOCUS );

¿Le ha resultado útil esta información? Envíenos sus comentarios.