Android编程实现点击EditText之外的控件隐藏软键盘功能

发布时间 - 2026-01-11 01:52:27    点击率:

本文实例讲述了Android编程实现点击EditText之外的控件隐藏软键盘功能。分享给大家供大家参考,具体如下:

工具类

...
public static void hideKeyboard(Context ctx) {
    if (ctx != null) {
      View view = ((Activity) ctx).getCurrentFocus();
      if (view != null) {
        InputMethodManager inputManager = (InputMethodManager) ctx
            .getSystemService(Context.INPUT_METHOD_SERVICE);
        inputManager.hideSoftInputFromWindow(view.getWindowToken(),
            InputMethodManager.HIDE_NOT_ALWAYS);
      }
    }
}

点击除EDITTEXT之外的控件隐藏软键盘,如果是viewgroup控件,递归执行

public static void setupUI(View view, final Context ctx) {
    //Set up touch listener for non-text box views to hide keyboard.
    if(!(view instanceof EditText)) {
      view.setOnTouchListener(new OnTouchListener() {
        public boolean onTouch(View v, MotionEvent event) {
          hideKeyboard(ctx);
          return false;
        }
      });
    }
    //If a layout container, iterate over children and seed recursion.
    if (view instanceof ViewGroup) {
      for (int i = 0; i < ((ViewGroup) view).getChildCount(); i++) {
        View innerView = ((ViewGroup) view).getChildAt(i);
        setupUI(innerView, ctx);
      }
    }
  }
...
}

调用时只需要传递最外层的layout即可。

UtilApp.setupUI((RelativeLayout) findViewById(R.id.login_parent), mContext);

更多关于Android相关内容感兴趣的读者可查看本站专题:《Android控件用法总结》、《Android开发入门与进阶教程》、《Android视图View技巧总结》、《Android编程之activity操作技巧总结》、《Android数据库操作技巧总结》及《Android资源操作技巧汇总》

希望本文所述对大家Android程序设计有所帮助。


# Android  # 点击  # EditText  # 控件  # 隐藏  # 软键盘  # Android文本输入框(EditText)输入密码时显示与隐藏  # Android中实现EditText密码显示隐藏的方法  # Android点击EditText文本框之外任何地方隐藏键盘的解决办法  # Android EditText密码的隐藏和显示功能  # Android编程之ListView和EditText发布帖子隐藏软键盘功能详解  # Android EditText长按菜单中分享功能的隐藏方法  # 操作技巧  # 递归  # 进阶  # 相关内容  # 感兴趣  # 给大家  # 只需要  # 更多关于  # 所述  # 程序设计  # 最外层  # 讲述了  # getSystemService  # inputManager  # hideSoftInputFromWindow  # INPUT_METHOD_SERVICE  # Activity  # view  # InputMethodManager  # getCurrentFocus 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】  Laravel怎么调用外部API_Laravel Http Client客户端使用  如何在阿里云香港服务器快速搭建网站?  Laravel怎么返回JSON格式数据_Laravel API资源Response响应格式化【技巧】  武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  Laravel怎么实现验证码(Captcha)功能  Laravel如何获取当前用户信息_Laravel Auth门面获取用户ID  Laravel如何配置任务调度?(Cron Job示例)  Java解压缩zip - 解压缩多个文件或文件夹实例  Android仿QQ列表左滑删除操作  Laravel Blade模板引擎语法_Laravel Blade布局继承用法  油猴 教程,油猴搜脚本为什么会网页无法显示?  零基础网站服务器架设实战:轻量应用与域名解析配置指南  Laravel事件和监听器如何实现_Laravel Events & Listeners解耦应用的实战教程  如何为不同团队 ID 动态生成多个非值班状态按钮  Javascript中的事件循环是如何工作的_如何利用Javascript事件循环优化异步代码?  Laravel怎么发送邮件_Laravel Mail类SMTP配置教程  如何实现建站之星域名转发设置?  Laravel如何使用Telescope进行调试?(安装和使用教程)  Python自然语言搜索引擎项目教程_倒排索引查询优化案例  Laravel如何保护应用免受CSRF攻击?(原理和示例)  Laravel怎么多语言本地化设置_Laravel语言包翻译与Locale动态切换【手册】  Laravel如何使用Eloquent进行子查询  Laravel如何实现API速率限制?(Rate Limiting教程)  香港服务器如何优化才能显著提升网站加载速度?  Python文件异常处理策略_健壮性说明【指导】  详解CentOS6.5 安装 MySQL5.1.71的方法  如何做网站制作流程,*游戏网站怎么搭建?  js实现获取鼠标当前的位置  lovemo网页版地址 lovemo官网手机登录  如何为不同团队 ID 动态生成多个独立按钮  如何在IIS服务器上快速部署高效网站?  专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?  JavaScript常见的五种数组去重的方式  PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑  Python正则表达式进阶教程_复杂匹配与分组替换解析  网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?  教你用AI润色文章,让你的文字表达更专业  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  韩国服务器如何优化跨境访问实现高效连接?  Laravel DB事务怎么使用_Laravel数据库事务回滚操作  Laravel Asset编译怎么配置_Laravel Vite前端构建工具使用  HTML透明颜色代码在Angular里怎么设置_Angular透明颜色使用指南【详解】  北京的网站制作公司有哪些,哪个视频网站最好?  Laravel如何安装Breeze扩展包_Laravel用户注册登录功能快速实现【流程】  C语言设计一个闪闪的圣诞树  php结合redis实现高并发下的抢购、秒杀功能的实例  Laravel怎么上传文件_Laravel图片上传及存储配置  Laravel如何监控和管理失败的队列任务_Laravel失败任务处理与监控