我们正在开发我们的第一个 android 应用程序,到目前为止,这是一次非常愉快的体验。它几乎完成了,但在发布之前我们有一些考虑,主要是关于 android 软键盘。
我们有几个 用于输入数字的EditText字段。我们希望在用户按下回车时捕获事件,并在此回调上进行一些计算并保存。
问题是我们没有得到一个固定的事件,因为不同的手机有不同的键盘。有些有“完成”按钮,我们的 HTC 手机有“输入”按钮。我们尝试将 imeOptions 用作“完成”,但这对 HTC 手机没有影响。
我们也知道可以通过点击后退按钮来关闭键盘。所以我的问题是,是否有一种可靠的方法可以知道用户何时停止输入或键盘何时隐藏,就像 iphone sdk 中的 textFieldShouldReturn 回调(当键盘关闭时它总是会触发,与导致它的键无关向下)..
换句话说,android 开发者如何处理软键盘?我在 editText onClick()事件上检查KeyEvent.KEYCODE_ENTER并在那里执行我的任务。它在我的 HTC android 上运行,但在我的朋友 Nexus 手机上运行,它有一个完成按钮而不是输入。甚至没有调用 onClick 。开发人员如何处理这个问题?
编辑:在我失去了一半的头发之后,在一些好朋友的帮助下
我已经尝试了您的所有建议,但最后通过使用 onEditorActionListener 和 onKeyListener方法为我解决了问题。在onEditorActionListener 的 onEdit 回调中,我检查了 KeyCode ACTION_DONE,它确实在带有完成按钮的键盘上被调用。在输入 onKey 的键盘上被调用。在 onKey 方法中,我还检查了 KEYCODE_BACK,以便也可以处理硬件后按事件。我还没有找到一个 android 设备完成并在键盘上输入(严重),但我什至用标志处理了这种情况。感谢@Femi 建议 onEditorActionListener,感谢所有朋友的帮助。但是我原来的问题的答案
问:是否有可靠且更简单的方法来了解 android 软键盘辞职(适用于每部手机的回调)
Ans :不,这里建议的所有方法和其他站点上建议的所有方法都不是直截了当的。而且我认为处理键盘返回键的事件是任何操作系统最基本的事情。谷歌,你在吗?