使用dpad使EditText获得焦点

时间:2016-10-25 20:26:16

标签: android focus textedit

我的应用程序中有一个简单的界面 - 屏幕顶部的按钮,屏幕中心的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上的键盘?

2 个答案:

答案 0 :(得分:0)

点击后尝试放置此行:

editKanal.requestFocus();

如果这不起作用,您可以发布XMl布局吗?

答案 1 :(得分:0)

以前你好过这个问题 最可能的原因是

1 - 不添加焦点

2 - 不在同一布局中的项目

请确保两者都是真的