软件编程
位置:首页>> 软件编程>> Android编程>> Android编程实现点击EditText之外的控件隐藏软键盘功能

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

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

标签:Android,控件,软键盘

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

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com