IME_ACTION_DONE似乎破坏了Android上的View.OnKeyListener

时间:2015-06-10 22:18:31

标签: java android android-edittext keylistener

我的EditText上有一个RelativeLayout视图,我可以捕获软输入键盘键代码KEYCODE_ENTER (int 66)。这是关键听众:

myedittext.setOnKeyListener(new View.OnKeyListener() 
  {
    @Override 
    public boolean onKey(View v, int keyCode, KeyEvent event)
     {
       Log.d("softinput", "key received!");
     }
  });

问题是软键盘显示标有“下一步”的键,我需要它显示“完成”。当我(成功)使用API​​将密钥更改为“完成”时:

myedittext.setImeOptions(EditorInfo.IME_ACTION_DONE);

Key监听器停止工作,我无法再在密钥监听器中收到任何。 LogCat没有显示任何内容。它确实停止了工作。当我删除上面的代码行时,一切都会再次起作用,但键显示“下一步”。

我猜这是在清除通知键所需的其他标志,但使用EditorInfo.IME_ACTION_NEXT工作正常,但软键当然显示“下一步”。

有人知道解决方法吗?或者出现这种情况的原因?

感谢。

2 个答案:

答案 0 :(得分:0)

你说你有一个EditText,但你的变量是" mytextview"。您是否正确地将关键监听器设置为 EditText

答案 1 :(得分:0)

imeOptions更改为以XML而非代码完成的操作。 将以下内容添加到edittext代码

android:imeOptions="actionDone"