Android控制输入法

原创 2015年07月09日 18:37:23

在开发过程中,经常需要使用代码去控制输入法的显示和隐藏。通过用户行为(手势,等待时间,响应)等去判断是否需要继续编辑,进而控制输入法的自动隐藏,可以提高用户体验。不过百度所说的一些控制输入法的方法,都是千篇一律相互抄袭的,完全没有任何效果。下面来看看谷歌的结果。

一、显示输入法

if (view.requestFocus()) {
    InputMethodManager imm = (InputMethodManager)
            getSystemService(Context.INPUT_METHOD_SERVICE);
    imm.showSoftInput(view, InputMethodManager.SHOW_IMPLICIT);
}

这个方法是谷歌官方文档给出的,效果自然是不用说了。需要注意的是showSoftInput中的view,一定要选择为你想让用户输入的EditText,才能保证焦点的正确设置

二、隐藏输入法

// 隐藏软键盘
InputMethodManager inputMethodManager = (InputMethodManager) mActivity.getSystemService(Context.INPUT_METHOD_SERVICE);
if (mActivity.getWindow().getAttributes().softInputMode != WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN) {
    if (mActivity.getCurrentFocus() != null)
        inputMethodManager.hideSoftInputFromWindow(mActivity.getCurrentFocus().getWindowToken(),
            InputMethodManager.HIDE_NOT_ALWAYS);
}

关键在于当前焦点的获取,如果设置的焦点错误,则无法正确隐藏输入法。如果存在多个EditText的情况下,可以使用getCurrentFocus方法来获取当前焦点,从而正确隐藏输入法。


以上就是个人觉得比较合理的控制输入法的方法。
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Android 文本框中的输入法控制

在Android开发中,必不可少的会使用到文本框(EditText)来进行数据录入,也就会需要对输入法进行一些控制。本文会对输入法的控制进行一些总结。 文本框的输入法控制 先看下LAYOUT定...

Android 输入法 控制 切换

今天想实现下面的功能: 第一点击某一个按钮时,显示的是表情,同时按钮的图标改变;第二次点击这个按钮时,弹出输入法,同样的图标切换到表情的图标。 效果如下图所示:   在开发过程中遇...
  • wdzayyt
  • wdzayyt
  • 2012年04月23日 18:17
  • 7013

android输入法控制显示

------- android培训、java培训、期待与您交流! ----------1 什么是内部类 类中有类,就是内部类 成员内部类(一般都是private的) 局部内部类(局部就是方法里) 匿名...

android 文本框输入法控制

在android开发中,必不可少的会使用到文本框(EditText)来进行数据录入,也就会需要对输入法进行一些控制。 android:inputType     :指定输入法的类型,int类型,可以...

android gesture 手势处理(输入法手势控制技术)

李华明Himi 原创,转载务必在明显处注明: 转载自【黑米GameDev街区】 原文链接: http://www.himigame.com/android-game/340.html ...

Android输入法弹出时控制Listview

Android输入法弹出时控制Listview问题描述:类似微信聊天界面,输入法或者表情输入框显示时,listview自动显示最新一条消息解决方法...

android源码问题解答之一(输入法)

本文将采取问答形式展开,收集的一些平时修改android平台源码遇到的问题。基于展讯平台,别的平台也基本上类似修改即可。 case 1:android:imeOptions有什么作用? 曾经出现一个...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android控制输入法
举报原因:
原因补充:

(最多只允许输入30个字)