Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 由于setOnKeyListener,EditText不接受数字输入_Android_Android Edittext - Fatal编程技术网

Android 由于setOnKeyListener,EditText不接受数字输入

Android 由于setOnKeyListener,EditText不接受数字输入,android,android-edittext,Android,Android Edittext,我有一个编辑文本,它接受字母和不同符号的输入,但不接受数字。此外,我还设置了setOnKeyListener上的EditText,通过按Enter键关闭虚拟键盘。观察并发现由于以下代码,无法获取数字输入 按enter键后将虚拟键盘设置为隐藏的代码 durOnTreadmill.setOnKeyListener(new OnKeyListener() { public boolean onKey(View v, int keyCode, KeyEvent event) {

我有一个
编辑文本
,它接受字母和不同符号的输入,但不接受数字。此外,我还设置了
setOnKeyListener
上的
EditText
,通过按Enter键关闭虚拟键盘。观察并发现由于以下代码,无法获取数字输入

按enter键后将虚拟键盘设置为隐藏的代码

durOnTreadmill.setOnKeyListener(new OnKeyListener() {
    public boolean onKey(View v, int keyCode, KeyEvent event) 
    {
        if (keyCode == KeyEvent.KEYCODE_ENTER) 
        { 
                InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
                imm.hideSoftInputFromWindow(durOnTreadmill.getWindowToken(), 0);
        }
        return true;
    }

});
我的编辑文本为XML

 <EditText
        android:id="@+id/durOnTreadmill"
        android:layout_width="129dp"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:layout_marginRight="32dp"
        android:inputType="text"
        android:hint="hh:mm:ss" />

我哪里做错了

android:imeOptions="actionDone"
在您的编辑器中,当用户按enter键时,文本xml将丢失键盘 你说除了数字之外,它不会被输入设置为“文本”

把这句话去掉:

android:inputType="text"

在这里复制我的评论:

只有在处理输入时,才应该从onKey返回true。 也就是说,在if块内移动return true并返回false 否则


如果正在处理输入,则只能从
onKey
返回
true
。也就是说,将
返回true
移动到
if
块中,然后
返回false
否则。像手榴弹一样工作;)谢谢,很抱歉回复太晚了,我已经试过输入法了。键盘按预期隐藏,但EditText仍不允许数字输入:)。Tushar的评论对我很有用。谢谢你的建议。:)没问题,很高兴你让它工作了,我甚至从来没有使用过onKeyListener for edittext我还在学习我自己学习没有年龄,很高兴我的帖子对你有所帮助:)我似乎觉得如果我写
edittext.setOnKeyListener{true}
,那么
edittext
将不会收到硬件键盘事件,这是真的。但在这种情况下,为什么虚拟键盘上的数字也被忽略了呢?