再会!
我有一个 Android 应用程序(v2.3.3 及更高版本),可让您通过EditText
控件进行搜索。我正在使用以下代码来检测用户何时完成并按下硬键或软键来执行搜索:
EditText editText = (EditText)findViewById(R.id.search_box);
editText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_SEARCH ||
actionId == EditorInfo.IME_ACTION_DONE ||
(event.getAction() == KeyEvent.ACTION_DOWN && event.getKeyCode() == KeyEvent.KEYCODE_ENTER))
{
performSearch();
return true;
}
return false;
}
});
显然,这并没有捕捉到表达“Enter”的所有可能方式,因为 beta 测试人员只是告诉我他们的 HTC Evo 软键盘上的“Enter”键没有任何作用。搜索硬键(放大镜)有效,但此代码未从软键盘捕获事件。
阅读一些帖子,这类问题的大多数答案都包含上述部分或全部逻辑。我还读到 HTC 做一些不同的键盘操作。
有没有人有一些防弹代码来检测任何设备上的“Enter”输入?
谢谢!