【发布时间】:2012-10-12 02:30:43
【问题描述】:
我的活动中有一个 EditText 字段。用户可以使用虚拟键盘更改该字段中的文本。一旦用户按下键盘上的回车键,我想执行一些操作。那么,如何在键盘上的回车按钮上实现 setOnClickListener 呢?
【问题讨论】:
我的活动中有一个 EditText 字段。用户可以使用虚拟键盘更改该字段中的文本。一旦用户按下键盘上的回车键,我想执行一些操作。那么,如何在键盘上的回车按钮上实现 setOnClickListener 呢?
【问题讨论】:
使用onKeyListener 来检查 Enter press
例如..
edittext.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (event.getAction()!=KeyEvent.ACTION_DOWN)
return false;
if(keyCode == KeyEvent.KEYCODE_ENTER ){
//your necessary codes...
return true;
}
return false;
}
});
更多信息,请查看official documentation
你也可以看到example
【讨论】:
editext 更改为我在代码中使用的那个,并在末尾添加) 以完成(new OnKeyListener() {,否则太棒了。谢谢。
设置在文本视图上执行操作时调用的特殊侦听器。这将在按下回车键或用户选择提供给 IME 的操作时调用。设置这个意味着普通的硬键事件不会在文本视图中插入换行符,即使是多行的;但是,按住 ALT 修饰符将允许用户插入换行符。
edittext.setOnEditorActionListener(new OnEditorActionListener() {
@Override
public boolean onEditorAction(final TextView v, final int actionId, final KeyEvent event) {
if ((event != null && (event.getKeyCode() == KeyEvent.KEYCODE_ENTER)) || (actionId == EditorInfo.IME_ACTION_DONE)) {
//perform your action
//button.performClick();
}
return false;
}
});
【讨论】:
我为您做了一些研究,发现了这一点: How to override the <ENTER> key behaviour of the virtual keyboard in Android
它解释了如何改变回车键的动作。
希望这会有所帮助!
【讨论】:
试试
KeyboardView.OnKeyboardActionListener ... 虚拟键盘事件的监听器。
进一步行动...
【讨论】: