2017-12-12 13 views
0

보기에 집중된 버튼이 있습니다. 또한 onKeyDown() 재정의 된 메서드가 있습니다.버튼에 포커스가있을 때 키 이벤트가 실행되지 않는 이유는 무엇입니까?

버튼을 원격으로 클릭하면 onClickListener가 호출되지만 onKeyDown()이 호출되지 않는 이유는 무엇입니까?

+1

대부분 '버튼'이 이벤트를 소비하고 있습니다 (예 : 원격 클릭이 Enter 키 누르기로 해석 됨). 그러나 [mcve]가 없으면 확실하게 말할 수 없습니다. – CommonsWare

+0

코드 plz 표시 –

답변

0

onKeyDown() 및 onKeyUp() 두 이벤트는 하드웨어 버튼에 특히 적합합니다. 이러한 이벤트는 소프트 버튼에도 적용됩니다. 이 두 가지 이벤트는 포커스 변경을 지원하지 않습니다.

포커스 변경 이벤트를 얻으려면 OnFocusChangeListener()를 사용하는 것이 가장 좋습니다.

button.setOnFocusChangeListener(new OnFocusChangeListener() { 
     @Override 
     public void onFocusChange(View v, boolean hasFocus) { 
      // TODO Auto-generated method stub 
      if (hasFocus) { 
       //Toast line... 
      } 
     } 

    });