Kri*_*dra 24 events android enter soft-keyboard
我们正在开发我们的第一个Android应用程序,到目前为止它是一个非常愉快的体验.它几乎完成,但在发布之前我们有一些考虑因素,主要是关于android软键盘.
我们有几个用于输入数字的 EditText字段.我们希望在用户按下Enter键时捕获事件,并进行一些计算并保存此回调.
问题是我们没有得到固定的事件,因为不同的手机有不同的键盘.有些人有"完成"按钮,我们的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软键盘辞职(适用于每部手机的回调)
答:不,这里建议的所有方法和其他网站上建议的所有方法都不简单.我认为处理键盘返回键事件是任何操作系统最基本的事情.谷歌,你呢?
由于您似乎正在捕获KEYCODE_ENTER事件,因此您可能可以使用此:http://developer.android.com/reference/android/widget/TextView.html#setOnEditorActionListener%28android.widget.TextView.OnEditorActionListener%29.理论上,这将让您检测输入方法的最终操作(无论是返回,完成,输入还是其他),并对其进行响应.
如果这对您有用,请告诉我.