首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

代码范例 - 在程序里检查虚拟键盘状态, 并开启关闭

2012-09-19 
代码实例 -- 在程序里检查虚拟键盘状态, 并开启关闭最近都在推上, 荒废了blog, 所以都没怎么写心得, 对不

代码实例 -- 在程序里检查虚拟键盘状态, 并开启关闭
最近都在推上, 荒废了blog, 所以都没怎么写心得, 对不起大家了哈 (其实也很忙 ;)

现在准备有空就写点实践心得, 希望对大家有帮助.

今天讲的是如何在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这个方法将就着 ;)
1 楼 melode11 2010-02-27   可以用hideSoftInputFromWindow(View.getWindowsToken(),int)
view就用当前显示在屏幕上的TextView应该就不会exception。
2 楼 lordhong 2010-02-27   melode11 写道可以用hideSoftInputFromWindow(View.getWindowsToken(),int)
view就用当前显示在屏幕上的TextView应该就不会exception。

我有时候vView.getWindowsToken()这里拿到的是NULL :( 3 楼 melode11 2010-03-04   lordhong 写道melode11 写道可以用hideSoftInputFromWindow(View.getWindowsToken(),int)
view就用当前显示在屏幕上的TextView应该就不会exception。

我有时候vView.getWindowsToken()这里拿到的是NULL :(
那我想是还没有attach到屏幕上吧。而且也不是setContentView了就马上attach的,而是被当作下一个message处理以后才真正attach到window. 4 楼 lordhong 2010-03-06   melode11 写道lordhong 写道melode11 写道可以用hideSoftInputFromWindow(View.getWindowsToken(),int)
view就用当前显示在屏幕上的TextView应该就不会exception。

我有时候vView.getWindowsToken()这里拿到的是NULL :(
那我想是还没有attach到屏幕上吧。而且也不是setContentView了就马上attach的,而是被当作下一个message处理以后才真正attach到window.
嗯,应该是这样,不过代码实现起来繁琐鸟~~~ 5 楼 gaogaf 2010-06-29   imm.hideSoftInputFromInputMethod(token, flags); 

这里的参数怎么设定?尤其是token 6 楼 品味Java 2010-11-29   ;如何在触摸 edittext 之后,不让系统加载自己的软键盘 7 楼 mqqqvpppm 2010-11-29   android 2.2 貌似 不work, 我测试 虚拟键盘以及关闭 但是 imm.isActive()为 true 8 楼 lyltiger 2011-02-12   虚拟键盘标记

热点排行