Hinzufügen von Feldern auf einer Karte

Sie können die RichMapField-Klasse verwenden, um eine Karte anzuzeigen, die Bestandteil eines Bildschirms sein kann, der eine oder mehrere Benutzeroberflächen-Komponenten enthält. Sie können Felder hinzufügen, die nicht Bestandteil der Karte sind, indem Sie RichMapField.add() aufrufen. Die Felder sind Overlays, die nicht direkt auf der Karte gerendert werden.

Wenn eine RichMapField-Instanz in einem Container vorhanden ist, der andere Benutzeroberflächen-Komponenten enthält (zum Beispiel in einem Dialogfeld), erfolgt standardmäßig durch RichMapField ein gemeinsam genutzter Fokus mit anderen Benutzeroberflächen-Komponenten, die es einem BlackBerry-Gerätebenutzer ermöglichen, von RichMapField zu den anderen Benutzeroberflächenkomponenten am Bildschirm zu navigieren. Wenn Sie RichMapField zum exklusiven Feld am Bildschirm (zum Beispiel die Karte als Vollbild) festlegen möchten, müssen Sie den freigegebenen Fokus durch Aufrufen von disableOperationMode(MapConstants.MODE_SHARED_FOCUS) deaktivieren.

Sie können MapConstants.MODE_FOCUS_ACTIVE verwenden, um festzulegen, dass RichMapField über Fokus verfügt und weiterhin Fokus gemeinsam mit den anderen Benutzeroberflächen-Komponenten nutzt. Wenn RichMapField über Fokus verfügt, nutzt RichMapField aktiv alle Eingabeereignisse, wie z. B. das Anklicken des Trackpad durch einen Benutzer. Indem Fokus an RichMapField gegeben wird, können Benutzer die Karte schwenken und vergrößern, ohne versehentlich die Karte zu verlassen und zu anderen Komponenten am Bildschirm zu verschieben. Wenn RichMapField nicht über Fokus verfügt, nutzt RichMapField keine Eingabeereignisse, und ein Benutzer kann die Karte schwenken und Fokus zu einem anderen Feld am Bildschirm verschieben.

Weitere Informationen zu Benutzeroberflächenkomponenten finden Sie in der Kurzanleitung zu BlackBerry Java SDK-Benutzeroberflächenkomponenten.

Codebeispiel: Hinzufügen eines Felds auf einer Karte

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

Codebeispiel: Festlegen von RichMapField als exklusives Feld auf dem Bildschirm

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

Waren diese Informationen hilfreich? Senden Sie uns Ihren Kommentar.