我的应用程序中有一个简单的界面 - 屏幕顶部的按钮,屏幕中心的EditText和底部的另外两个按钮。 现在我想使用dpad来浏览应用程序的元素,除了EditText之外一切正常 - 基本上我可以浏览项目很好,按钮在焦点上突出显示,但不是EditText - 它似乎没有响应,即使我点击dpad中央按钮(因此键盘不会显示)。例如,当我突出显示顶部元素并按下dpad时,顶部按钮失去焦点,底部的2个按钮都没有得到焦点,所以看起来它是获得焦点的EditText,但它不以任何方式突出显示,也不显示键盘。当我用光标(或触摸设备)点击它时,一切正常。
我已经尝试添加OnKeyListener来检查但似乎没有关闭 - 就像EditText没有真正得到焦点而且在EditText上没有触发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)
点击后尝试放置此行:
editKanal.requestFocus();
如果这不起作用,您可以发布XMl布局吗?
答案 1 :(得分:0)
以前你好过这个问题 最可能的原因是
1 - 不添加焦点
2 - 不在同一布局中的项目
请确保两者都是真的