软键盘的显示与隐藏

EditText有时候会在Activity的布局上,有时候会在非activity的布局上,所以如果写法不对的话,想隐藏软键盘很有可能实现不了,下面是正确的写法,可以将其写入工具类

//显示软键盘
public static void showKeyBoard(EditText v) {
if (v == null) return;
        v.requestFocus();
        v.post(new Runnable() {
            @Override
            public void run() {
                InputMethodManager imm = (InputMethodManager) v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
                if (imm != null) {
                //imm.toggleSoftInput(0, InputMethodManager.SHOW_FORCED);
                //上面那句话也能显示软键盘,但是发现华为手机如果是密码输入框的话能弹出软键盘,但是弹出的不是华为安全键盘,会导致输入不进去内容,所以推荐用下面的写法,亲测有效,而且能适配所有手机,官方也推荐这么写,SHOW_IMPLICIT是指隐性的,非用户操作的
                    imm.showSoftInput(v, InputMethodManager.SHOW_IMPLICIT);
                }
            }
        });	
	}

//隐藏软键盘有两种写法,根据实际情况选择
//1 直接传入EditText,适用于非Activity的情况
public static void closeKeyBoard(View v) {
		if (v == null) return;
        v.clearFocus();
        InputMethodManager imm = (InputMethodManager) v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
        if (imm != null) {
            imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
        }
	}

//2 传入当前Activity,适用于Activity的情况
public static void closeKeyBoard(Activity act) {
		if (act == null || act.getCurrentFocus() == null) return;
        InputMethodManager imm = (InputMethodManager) act.getSystemService(Context.INPUT_METHOD_SERVICE);
        if (imm != null) {
            imm.hideSoftInputFromWindow(act.getCurrentFocus().getWindowToken(), 0);
        }
	}
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
虚拟键盘 软键盘 free virtual keyboard ==================== 将英语译成中文 免费多语言虚拟屏幕键盘 屏幕上的所有虚拟键工作只是因为他们如果你是一个标准的电脑键盘打字。选择键和免费的虚拟键盘发送到一个文字处理器,电子邮件,网页或其他Windows应用程序可能正在使用。键盘可以移动屏幕上的任何地方,可以是任意大小。 免费的虚拟键盘可用于残疾,防止他或她从一个物理电脑键盘打字的人。 也与我们的虚拟键盘,你可以: 改变键盘尺寸。 更改键盘的透明度。 打开和关闭一个键复读功能(见上下文菜单)。 规模的虚拟键盘以匹配屏幕宽度(见上下文菜单)。这是一个在纵向和横向模式频繁屏幕旋转有用的功能。 更改键盘(见上下文菜单)的类型。可用3虚拟键盘类型。 更改主题颜色(见上下文菜单)。 任何语言中键入文本。 键入文本(例如左手美国德沃夏克)其他布局。 -------------------------------------------------- ------------------------------ 免费的虚拟键盘是为个人和商业使用免费程序。这个节目作为分发的依据,且无任何担保,甚至没有适销性或针对特定目的的隐含的担保。舒适软件集团不能作出对任何直接或间接造成的破坏计划。 舒适软件集团保留权利更改日后发牌条件。 朗读 显示对应的拉丁字符的拼音新! 点击上方的字词即可查看其他翻译。 删除 字典 - 查看字典详细内容

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值