2016-10-25 7 views
0

내 앱에는 화면 상단의 버튼, 스크린 센터의 EditText 및 하단의 2 개의 버튼이있는 간단한 인터페이스가 있습니다. 이제 dpad를 사용하여 응용 프로그램 요소를 탐색하고 싶습니다. EditText 외에도 모든 항목이 정상적으로 작동합니다. 기본적으로 항목을 탐색 할 수 있지만 포커스는 강조 표시되지만 EditText는 표시되지 않습니다. 클릭해도 반응이 없습니다. dpad 중앙 버튼 (키보드가 나타나지 않음). 예를 들어 맨 위의 요소를 강조 표시 한 상태에서 dpad를 누르면 맨 위의 단추가 포커스를 잃어 버립니다. 아래쪽의 두 단추 중 아무 것도 포커스를 얻지 못하기 때문에 포커스를받는 EditText 인 것처럼 보입니다. 어떤 방식 으로든 강조 표시하지 않으며 키보드를 표시하지 않습니다. 내가 coursor (또는 터치 장치)와 함께 그것을 클릭하면 다 괜찮아.EditText는 dpad를 사용하여 포커스를 얻습니다.

나는 확인하기 위해 OnKeyListener을 추가하는 시도했지만 해고하지 않는 것 - 글고 정말 초점을하지 않았다처럼과의 KeyEvent는 글고 치기에 해고되지 않습니다

editKanal.setOnKeyListener(new View.OnKeyListener() { 
     @Override 
     public boolean onKey(View v, int keyCode, KeyEvent event) { 
      if (event.getAction() == KeyEvent.ACTION_DOWN) 
       if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER){ 
        Toast.makeText(getApplicationContext(), "got the focus", Toast.LENGTH_LONG).show(); 
        return true; 
       } 

      return false; 
     } 
    }); 

아무도 내가 뭘 잘못하고 있다고 말할 수 있습니까? EditText가 DPAD_CENTER의 키보드를 눌렀다는 것을 어떻게 보이게합니까? 클릭 후이 줄을 넣어

+0

레이아웃에 다음 포커스를 추가 했습니까? 같은 레이아웃 안에있는 모든 항목입니까? –

+0

Thanks @ Hala.m - 나를 올바른 방향으로 안내해주었습니다! 나는 nextFocusDown 세트를 가지고 있었지만 요소들은 다른 레이아웃에있었습니다. 많은 레이아웃을 없애고 Relative에 모든 것을 배치했을 때 갑자기 잘 작동하기 시작했습니다. – exx

답변

0

안녕하세요 가능성이 가장 높은 원인은 전에이 문제가 있었다

1 아니라 추가 초점 다운

모두에 해당하는지 확인하십시오 동일한 레이아웃에없는

2 항목

+1

감사! 레이아웃을 단순화하는 것이 트릭을 만들었습니다! – exx

0

시도 :이 작동하지 않는 경우

editKanal.requestFocus(); 

, 당신은 당신의 XML 레이아웃을 게시 할 수 있습니까?

+0

는 행운을 불어 넣었습니다. TextEdit가 포커스를 전혀 가지지 않기 때문에 작동하지 않았으므로 KEYCODE_DPAD_CENTER 이벤트는 트리거되지 않았지만 @ Hala.m은 솔루션 가이드로 안내했습니다. 내 레이아웃을 재 작업해야하므로 다른 레이아웃이 중첩되지 않고 작동했습니다. – exx