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输入法属性使用,软键盘隐藏、显示状态控制大揭秘

经常会遇到需要控制输入法的情况,如输入法显示、隐藏; 输入法弹出后,界面被顶上去或编辑框被遮挡等问题;下面分为几个部分总结输入法属性设置,及输入法控制。 一、windowSoftInputM...
  • duantihi
  • duantihi
  • 2016年01月19日 21:14
  • 2450

Android 输入法 控制 切换

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

android 文本框输入法控制

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

Android如何控制系统的输入法显示和隐藏

当点击某个View对输入法进行操作:显示或者隐藏 // toogle输入法 public static void hidenOrShowInputMethod(View view,Context ...
  • liuyi1207164339
  • liuyi1207164339
  • 2015年10月24日 17:18
  • 1609

更简单,更有效,更实用的C# 输入法控制

     最近因为,项目需要对输入法进行控制,但进行了多种尝试,总有不如意的地方!    如果运用控件ImeMode属性或者网上找的一些方法,要嘛开发的时候太繁琐,要嘛就是控制不到位!经过反复的尝试,...
  • DevSam
  • DevSam
  • 2008年08月05日 13:05
  • 719

Android 输入法在页面中显示方式位置变化

近期做项目的时候,使用TabHostFragment类以便做导航页签,但在子Fragment里需要输入文字,这就导致在显示输入法时候,tab页签会上移,而需求却是隐藏掉页签。 系统提供了在清单文件里...
  • Jhear
  • Jhear
  • 2016年09月08日 12:08
  • 803

Android自定义软键盘输入法,隐藏系统输入法显示光标的实现

android实现自定义软键盘,先上图看效果,效果基本上是仿ios输入法实现的
  • qq_25804863
  • qq_25804863
  • 2015年09月23日 20:05
  • 6906

js控制输入法关闭

要在paid网页端写一个input,里面输入的是日期,但是每次我点击的时候,paid的输入法就会自动弹出从而不能选择日期。...
  • startcodingnoend
  • startcodingnoend
  • 2015年11月17日 13:06
  • 183

android 改变输入法enter键文字 为搜索 下一个 以及前往

我们大家都知道通过指定EditText的android:imeOptions属性可以修改 输入法enter键的显示情况 例如: android:imeOptions="actionNext"   下一...
  • u010399316
  • u010399316
  • 2016年01月23日 13:54
  • 1646

android输入法控制显示

------- android培训、java培训、期待与您交流! ----------1 什么是内部类 类中有类,就是内部类 成员内部类(一般都是private的) 局部内部类(局部就是方法里) 匿名...
  • hsb3232364
  • hsb3232364
  • 2013年03月31日 23:01
  • 475
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android控制输入法
举报原因:
原因补充:

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