Ajout de champs sur une carte

Vous pouvez utiliser la classe RichMapField pour afficher une carte pouvant faire partie d'un écran comprenant plusieurs composants d'interface utilisateur. Vous pouvez ajouter des champs qui ne font pas partie de la carte en appelant RichMapField.add(). Les champs sont des superpositions qui ne sont pas directement affichées sur la carte.

Lorsqu'une instance de RichMapField se trouve dans un conteneur comprenant d'autres composants de l'interface utilisateur (par exemple, dans une boîte de dialogue), RichMapField partage par défaut sa focalisation avec les autres composants d'interface utilisateur, ce qui permet à l'utilisateur de terminal BlackBerry de passer du champ RichMapField aux autres composants d'interface utilisateur à l'écran. Si vous souhaitez faire de RichMapField le champ exclusif à l'écran (par exemple, la carte représente le plein écran), vous devez désactiver la focalisation partagée en appelant disableOperationMode(MapConstants.MODE_SHARED_FOCUS).

Vous pouvez utiliser MapConstants.MODE_FOCUS_ACTIVE pour indiquer que le champ RichMapField a la focalisation et partage toujours la focalisation avec les autres composants d'interface utilisateur. Lorsque RichMapField a la focalisation, RichMapField utilise activement tous les événements de saisie, par exemple, l'utilisateur clique sur le pavé tactile. L'attribution de la focalisation à RichMapField permet à l'utilisateur d'effectuer un panoramique et un zoom sur la carte, sans la fermer par inadvertance ou passer à d'autres composants de l'écran. Lorsque RichMapField n'a pas la focalisation, RichMapField n'utilise aucun événement de saisie et l'utilisateur peut effectuer un panoramique sur la carte et déplacer la focalisation sur un autre champ sur l'écran.

Pour plus d'informations à propos des composants d'interface utilisateur, consultez le document BlackBerry Java SDK UI Component Quick Reference Guide (Guide de référence rapide BlackBerry du composant d'interface utilisateur de BlackBerry Java SDK).

Échantillon de code : ajout de champs sur une carte

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 );

Échantillon de code : définition du champ RichMapField comme champ exclusif sur l'écran

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

Ces informations vous ont-elles été utiles ? Envoyez-nous vos commentaires.