2014-03-24 3 views
1

나는 소니 스마트 워치 2를위한 ControlExtension를 사용하고 난 클릭 핸들러가 예상대로 Sony Smart Watch 2 : 버튼을 길게 클릭 한 후 CLICK_TYPE_SHORT이 (가) 호출되지 않도록하려면 어떻게해야하나요?

@Override 
public void onObjectClick(final ControlObjectClickEvent event) { 
    switch (event.getClickType()) 
    { 
     case Control.Intents.CLICK_TYPE_LONG: 
     Log.i("onObjectClick", "long press"); 
     break; 

     case Control.Intents.CLICK_TYPE_SHORT: 
     Log.i("onObjectClick", "press"); 
     break; 
    } 
} 

내가 버튼을 클릭

, 내 로그 캣에 press를 얻을 수 있습니다.
내가 버튼을 누르면 나는 (내가 원하는대로) long press이된다.
그러나 길게 누르면 버튼을 놓으면 다시 press이 나옵니다.

이 동작을 어떻게 변경합니까?

답변

0

이렇게 긴 클릭을 시도해 보셨나요?

ControlView upperLeft = mLayout.findViewById(R.id.sample_control_object_1); 
upperLeft.setOnLongClickListener(new OnLongClickListener() { 
      @Override 
      public void onLongClick() { 
       // handle click action here 
      } 
     }); 
+0

나는 시도했지만 함수는 호출되지 않는 것 같습니다. setOnClickListener와 같습니다. mLayout = parseLayout (layout) 후에 ControlExtension의 생성자에 핸들러를 등록했습니다. 로그 항목이 추가되었는지 확인합니다. –

+0

레이아웃에서 클릭 한 뷰에 대해 android : clickable = "true"로 설정했는지 확인 했습니까? – mldeveloper

+0

예, 버튼에 필요하지 않다고 생각했지만 그래요. 나는 이제 다음 프레스 이벤트를 무시하기 위해 긴 언론에 플래그를 설정하여 관리했습니다. 어쨌든, 실제 장치는 액세서리 에뮬레이터와 완전히 다른 것처럼 보입니다. (긴 프레스가 전혀 작동하지 않습니다. 버튼의 텍스트를 설정할 수없고 텍스트가 에뮬레이터보다 훨씬 크게 보입니다.) –