Android:捕捉按下键盘输入按钮的动作
Posted
技术标签:
【中文标题】Android:捕捉按下键盘输入按钮的动作【英文标题】:Android: catching action for keyboard enter button being pressed 【发布时间】:2014-09-27 23:00:03 【问题描述】:我正在尝试在数字模式下响应按屏幕软键盘标准系统上的 Enter 按钮。当 myCustomEditText 类获得焦点时,键盘会出现在屏幕上。
尝试了 2 种方法:
-
覆盖
onKeyDown()
:
-
设置监听器
setOnKeyListener
:
(在 myCustomEditText 中也尝试过onKeyDown()
,但没有效果)
问题是:
上面的这些方法适用于所有被按下的键,但对于 enter 键 - 这些方法甚至根本没有被触发。 (不是坏的问题KeyEvent.KEYCODE_...
)
我的问题是: 为什么这些方法不是针对回车键触发的,而是针对其他键触发的,以及如何监听正确按下的回车键?
【问题讨论】:
【参考方案1】:您对 ENTER 的响应与普通键不同,请尝试以下操作:
editText.setOnEditorActionListener(new TextView.OnEditorActionListener()
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event)
switch (actionId)
case EditorInfo.IME_ACTION_DONE:
...
return true;
default:
return false;
);
您可以通过在 XML 中指定 android:imeOptions
或通过使用 EditorInfo
中的常量之一调用 editText.setImeOptions(...)
来指定由 ENTER 执行的操作。 imeOptions
也改变了 ENTER 键的外观!例如,如果您将 imeOptions
设置为 actionSearch
,则 ENTER 键将看起来像一个搜索按钮。
您可以找到imeOptions
的所有可能值的列表以及here 的描述。
【讨论】:
你知道如何在 EditText 类对象上设置 TextView.OnEditorActionListener() 吗?我收到“setOnEditorActionListener is undefined for myCustomEditText”错误 好吧,如果你得到这个错误,那么你没有使用EditText
。你首先想做什么?
没关系,它也应该在 EditText 上工作,但我试图将侦听器设置为其他 ;) 谢谢!
很高兴能帮上忙!
我也必须回复 IME_NULL以上是关于Android:捕捉按下键盘输入按钮的动作的主要内容,如果未能解决你的问题,请参考以下文章
Android:如何让键盘输入按钮说“搜索”并处理它的点击?