2010-08-16 4 views
-1

검은 딸기 프로젝트에 BitmapField을 추가하려고합니다.클릭 이벤트를 BitmapField (fieldchangeListener)에 추가하는 방법은 무엇입니까?

클래스를 FieldChangeListener으로 구현하고 FieldChangeListener 메서드를 클래스에 추가했습니다. 심지어 특정 비트 맵 필드에 setChangeListener을 추가했지만 클릭 이벤트에 응답하지 않습니다.

어떻게 수정합니까?

+1

지금까지 무엇을 얻었는지 알 수 있도록 코드를 게시 할 수 있습니까? – taylonr

답변

1

먼저 BitmapField에는 기본적으로 포커스가 설정되지 않으므로이를 수정하려면 isFocusable을 하위 클래스로 재정의해야합니다. 그런 다음 navigationclick을 재정의하여 fieldChanged 이벤트를 발생시킵니다. 코드는 최소 필드 스 니펫이 외에도

import net.rim.device.api.ui.component.BitmapField; 

public class ClickableBitmapField extends BitmapField { 
    public boolean isFocusable() { 
     return true; 
    } 

    protected boolean navigationClick(int status, int time) { 
     fieldChangeNotify(0); 
     return true; 
    } 
} 

, 당신이 (당신은 터치 스크린 장치에 대해 신경 제외) 귀하의 필드에 포커스가있을 때 어떤 표시를 제공 할 수 있습니다. 기본 구현은 비트 맵의 ​​투명 영역에 하이라이트를 그립니다. 포커스 상태가 변경 될 때 표시되는 비트 맵을 변경하려면 drawFocus를 무시하고 onFocus 및 onUnfocus를 변경하여이 값을 변경할 수 있습니다.

관련 문제