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

作者:_iorilan 时间:2022-08-07 02:06:08 

本文实例讲述了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,控件,软键盘
0
投稿

猜你喜欢

  • 关于@Autowired注解和静态方法及new的关系

    2021-07-16 13:08:06
  • Java动态代理分析及理解

    2021-10-21 14:59:58
  • Android四大组件之Activity详解

    2022-08-22 00:00:49
  • GraalVM和Spring Native尝鲜一步步让Springboot启动飞起来66ms完成启动

    2023-07-19 10:34:35
  • 完美解决客户端webview持有的页面缓存,不会立即释放的问题

    2021-09-23 03:30:50
  • 深入解析JVM之内存结构及字符串常量池(推荐)

    2023-01-02 19:48:20
  • C# WinForm实现图片浏览器

    2022-04-12 23:28:00
  • C++中关键字Struct和Class的区别

    2022-12-23 11:25:06
  • Java如何重写object类的equals方法详解

    2023-09-01 15:54:57
  • C#中使用IFormattable实现自定义格式化字符串输出示例

    2023-05-31 23:34:04
  • Mybatis resultMap标签继承、复用、嵌套方式

    2023-06-27 13:27:43
  • 由浅到深带你详谈Java实现数组扩容的三种方式

    2023-07-05 18:37:19
  • 基于Java的打包jar、war、ear包的作用与区别详解

    2023-11-17 11:41:13
  • 浅谈JMeter engine启动原理

    2022-02-22 03:06:47
  • Java并发编程中的生产者与消费者模型简述

    2023-02-16 20:33:18
  • java使用回溯法求解数独示例

    2023-08-17 14:39:10
  • Java程序开发环境配置图文教程

    2022-05-24 08:55:16
  • js事件模型与自定义事件实例解析

    2021-05-26 06:15:06
  • c#正反序列化XML文件示例(xml序列化)

    2023-01-06 02:49:57
  • Java基础之简单的图片处理

    2022-08-12 03:49:01
  • asp之家 软件编程 m.aspxhome.com