欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

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

程序员文章站 2023-11-04 15:59:16
本文实例讲述了android编程实现点击edittext之外的控件隐藏软键盘功能。分享给大家供大家参考,具体如下: 工具类 ... public static...

本文实例讲述了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程序设计有所帮助。