浏览 14685 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (1)
|
|
---|---|
作者 | 正文 |
发表时间:2010-02-23
现在准备有空就写点实践心得, 希望对大家有帮助. 今天讲的是如何在Android程序中检查虚拟键盘的状态, 如何开启关闭虚拟键盘. 用过Android手机的童鞋们都知道, Android的虚拟键盘是挺挫的~~~ 按键不精确, 反应也很2... 在Android系统服务里有个InputMethodManager是用来控制输入法的: InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 用: if (imm.isActive()) 来检查虚拟键盘是不是在开启的状态 然后可以用toggle方法来关闭它 imm.toggleSoftInput(InputMethodManager.SHOW_IMPLICIT, InputMethodManager.HIDE_NOT_ALWAYS); 当然如果当前虚拟键盘是关闭的, toggle就会开启键盘. InputMethodManager也有独立开启和关闭的方法: imm.showSoftInput(view, flags); imm.showSoftInputFromInputMethod(token, flags); imm.hideSoftInputFromInputMethod(token, flags); 但我在实践中从window获取那个token偶尔会出Exception, 所以现在都在用toggle这个方法将就着 ;) 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2010-02-27
可以用hideSoftInputFromWindow(View.getWindowsToken(),int)
view就用当前显示在屏幕上的TextView应该就不会exception。 |
|
返回顶楼 | |
发表时间:2010-02-27
melode11 写道 可以用hideSoftInputFromWindow(View.getWindowsToken(),int)
view就用当前显示在屏幕上的TextView应该就不会exception。 我有时候vView.getWindowsToken()这里拿到的是NULL :( |
|
返回顶楼 | |
发表时间:2010-03-04
lordhong 写道 melode11 写道 可以用hideSoftInputFromWindow(View.getWindowsToken(),int)
view就用当前显示在屏幕上的TextView应该就不会exception。 我有时候vView.getWindowsToken()这里拿到的是NULL :( 那我想是还没有attach到屏幕上吧。而且也不是setContentView了就马上attach的,而是被当作下一个message处理以后才真正attach到window. |
|
返回顶楼 | |
发表时间:2010-03-06
melode11 写道 lordhong 写道 melode11 写道 可以用hideSoftInputFromWindow(View.getWindowsToken(),int)
view就用当前显示在屏幕上的TextView应该就不会exception。 我有时候vView.getWindowsToken()这里拿到的是NULL :( 那我想是还没有attach到屏幕上吧。而且也不是setContentView了就马上attach的,而是被当作下一个message处理以后才真正attach到window. 嗯,应该是这样,不过代码实现起来繁琐鸟~~~ |
|
返回顶楼 | |
发表时间:2010-06-29
imm.hideSoftInputFromInputMethod(token, flags);
这里的参数怎么设定?尤其是token |
|
返回顶楼 | |
发表时间:2010-11-29
;如何在触摸 edittext 之后,不让系统加载自己的软键盘
|
|
返回顶楼 | |
发表时间:2010-11-29
android 2.2 貌似 不work, 我测试 虚拟键盘以及关闭 但是 imm.isActive()为 true
|
|
返回顶楼 | |
发表时间:2011-02-12
虚拟键盘标记
|
|
返回顶楼 | |