Android收起虚拟键盘

本文介绍了在Android应用中如何有效地收起虚拟键盘,特别是在多个EditText控件存在的情况下。提供了两种实用的方法来解决这一常见问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于收起虚拟键盘,网上能找到的大多是这个:

[java]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);    
  2.         imm.hideSoftInputFromWindow(editText.getWindowToken(), 0) ;  

不过这有个问题,比如我们在一个页面中有很多editText,到最后提交的时候我们并不知道实际光标停留在哪个editText。除非一个一个遍历判断。那么该怎么办呢?我后来找到这样的方法:

[java]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. InputMethodManager imm =  (InputMethodManager)getSystemService(INPUT_METHOD_SERVICE);   
  2. if(imm != null) {   
  3.       
[java]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. imm.hideSoftInputFromWindow(getWindow().getDecorView().getWindowToken(),    
  2.                        0);   
  3.                      }  

这个便不用提供绑定的editText。



((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE)).

    hideSoftInputFromWindow(MyActivity.this.getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);

MyActivity是当前的Activity

((InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE)). 

     hideSoftInputFromWindow(editview.getWindowToken(),InputMethodManager.HIDE_NOT_ALWAYS); 

editview是输入框

在用关闭软键盘的代码时一定要注意,关闭之前是哪个控件触发的软键盘还是Activity触发的软键盘。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值