Adicionar campos a um mapa

Você pode usar a classe RichMapField para exibir um mapa, que pode ser parte de uma tela que inclui um ou mais componentes de interface de usuário. Você pode adicionar campos que não fazem parte do mapa invocando RichMapField.add(). Os campos são overlays que não são processados diretamente no mapa.

Quando uma instância RichMapField está em um contêiner que contém outros componentes da interface de usuário (por exemplo, caixa de diálogo), por padrão, RichMapField compartilha o foco com os outros componentes de interface de usuário, que permite que um usuário do aparelho BlackBerry mova do RichMapField para outros componentes de interface de usuário na tela. Se você deseja tornar RichMapField campo exclusivo na tela (por exemplo, o mapa é a tela inteira), você deve incapacitar o foco compartilhado invocando disableOperationMode(MapConstants.MODE_SHARED_FOCUS).

Você pode usar MapConstants.MODE_FOCUS_ACTIVE para especificar que RichMapField tem foco e ainda compartilhar o foco com os outros componentes de interface de usuário. Quando RichMapField tem foco, RichMapField consome ativamente todos os eventos de entrada, como um usuário clicando no trackpad. Dar foco a RichMapField permite que um usuário tenha visão panorâmica e com zoom do mapa sem sair do mapa inadvertidamente e indo para outros componentes da tela. Quando RichMapField não tem foco, RichMapField não consome eventos de entrada e um usuário consegue ter visão panorâmica do mapa e mover o foco para outro campo na tela.

Para obter mais informações sobre componentes de interface de usuário, consulte o Guia de referência rápida a componentes de interface de usuário do BlackBerry Java SDK .

Exemplo de código: Adicionar um campo a um 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 );

Exemplo de código: Definir RichMapField como o campo exclusivo na tela

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

Estas informações foram úteis? Gostaríamos de receber seus comentários.