지도 맨 위에 필드 추가

RichMapField 클래스를 사용하면 UI 구성 요소를 하나 이상 포함하는 화면의 일부로 지도를 표시할 수 있습니다. 지도의 일부가 아닌 필드는 RichMapField.add()를 호출하여 추가할 수 있습니다. 이러한 필드는 지도 위에 직접 렌더링되지 않는 오버레이입니다.

RichMapField 인스턴스가 다른 UI 구성 요소를 포함하는 컨테이너(예: 대화 상자)에 포함되어 있는 경우, RichMapField는 기본적으로 포커스를 다른 UI 구성 요소와 공유하기 때문에 BlackBerry 단말기 사용자는 RichMapField에서 화면상의 다른 UI 구성 요소로 이동할 수 있습니다. 지도가 전체 화면을 차지하는 경우처럼 RichMapField가 화면에서 포커스를 다른 UI 구성 요소와 공유하지 않게 하려면 disableOperationMode(MapConstants.MODE_SHARED_FOCUS)를 호출하여 공유된 포커스가 사용되지 않게 해야 합니다.

MapConstants.MODE_FOCUS_ACTIVE를 사용하면 RichMapField가 포커스를 받으면서 다른 UI 구성 요소와 계속 포커스를 공유하도록 지정할 수 있습니다. RichMapField에 포커스가 있으면 RichMapField는 사용자의 트랙패드 클릭 같은 모든 입력 이벤트를 처리하게 됩니다. 포커스를 RichMapField에 두면 사용자가 지도를 이동하거나 확대/축소할 때 실수로 지도를 벗어나 화면상의 다른 구성 요소로 이동하지 않게 됩니다. RichMapField에 포커스가 없으면 RichMapField는 어떠한 입력 이벤트도 처리하지 않고, 사용자는 지도를 이동하고 포커스를 화면상의 다른 필드로 이동할 수 있습니다.

UI 구성 요소에 대한 자세한 내용은 BlackBerry Java SDK UI 구성 요소 빠른 참조 가이드를 참조하십시오.

코드 샘플: 지도 맨 위에 필드 추가

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

코드 샘플: 화면에서 포커스를 공유하지 않는 필드로 RichMapField 설정

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

이 정보가 도움이 되었습니까? 의견을 보내 주십시오.