내 앱에는 화면 상단의 버튼, 스크린 센터의 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의 키보드를 눌렀다는 것을 어떻게 보이게합니까? 클릭 후이 줄을 넣어
레이아웃에 다음 포커스를 추가 했습니까? 같은 레이아웃 안에있는 모든 항목입니까? –
Thanks @ Hala.m - 나를 올바른 방향으로 안내해주었습니다! 나는 nextFocusDown 세트를 가지고 있었지만 요소들은 다른 레이아웃에있었습니다. 많은 레이아웃을 없애고 Relative에 모든 것을 배치했을 때 갑자기 잘 작동하기 시작했습니다. – exx