关闭

Android控制输入法

标签: android输入法
238人阅读 评论(0) 收藏 举报
分类:

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

一、显示输入法

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方法来获取当前焦点,从而正确隐藏输入法。


以上就是个人觉得比较合理的控制输入法的方法。
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:92728次
    • 积分:1327
    • 等级:
    • 排名:千里之外
    • 原创:30篇
    • 转载:7篇
    • 译文:12篇
    • 评论:27条
    最新评论