2011-05-10 6 views
1

터치 지원 장치 (950095509800, ...) 용 맞춤 ImageButton을 구현하고 있습니다. 외부 필드를 클릭 (터치)하면 집중된 필드에서 이벤트가 생성되는 문제가 있습니다. (Field , BitmapField)BlackBerry 외부 클릭

빈 필드로 포커스를 이동하여 해결할 수 있지만 매우 좋지 않습니다. 이상한 점은 Field, BitmapField에 대한 동작이지만 ButtonField에 대한 동작이 아니라는 것입니다. 실제로는 ButtonField이 집중 될 때 외부 클릭은 버튼 이벤트를 생성하지 않습니다.

나는 ButtonField을 확장하려고했지만 어리석은 버튼 백그라운드를 제거 할 수 없었습니다.

내 질문에; FieldButtonField 사이의 동작 차이가 Field 외부의 이벤트를 생성하는 원인은 무엇입니까? 당신은 당신의 touchEvent (에 체크를 추가 할 필요가

// cahange button border 
    setBorder(BorderFactory 
      .createSimpleBorder(new XYEdges(0, 0, 0, 0))); 
    setBorder(VISUAL_STATE_ACTIVE, BorderFactory 
      .createSimpleBorder(new XYEdges(0, 0, 0, 0))); 

답변

0

)을하여 ImageButton

protected boolean touchEvent(TouchEvent message) { 
    //make sure the touch is withing the bounds of our Field 
    if(message.getX(1) < 0 || message.getX(1) > getWidth() || message.getY(1) < 0 || message.getY(1) > getHeight()) { 
     return false; 
    } 

    //Do your work 
} 

에 대한 터치 이벤트가 초점을 맞춘 필드에 전송됩니다

내가 버튼 배경을 제거하는 방법입니다 실제로 필드에 있지 않더라도 false를 반환해야합니다.이를 포함하는 관리자는이를 받아들이는 다음 필드 (터치가있는 필드 또는 빈 공간에 있으면 아무 것도)로 보낼 수 있음을 알고 있어야합니다. .

편집 : 이 protected void applyTheme() {}

+0

예 나는,이 검사에 대해 알고 우선, 버튼의 배경을 제거하려면하지만 내 질문의 차이점이 무엇이며, 왜 ButtonField 클릭이 내부 만 수락? btw. 그 동안 버튼 배경을 제거하는 방법을 알아 냈으므로 이제 buttonfield가 완벽하게 작동합니다 – Janci

+0

@Janci는 버튼 배경을 어떻게 타고 났습니까? –

+0

@TechnodHr 단추 장식을 제거하는 방법을 보여주기 위해 내 대답을 업데이트했습니다. – jprofitt