Android编程实现点击EditText之外的控件隐藏软键盘功能
本文实例讲述了Android编程实现点击EditText之外的控件隐藏软键盘功能。分享给大家供大家参考,具体如下:
工具类
... publicstaticvoidhideKeyboard(Contextctx){ if(ctx!=null){ Viewview=((Activity)ctx).getCurrentFocus(); if(view!=null){ InputMethodManagerinputManager=(InputMethodManager)ctx .getSystemService(Context.INPUT_METHOD_SERVICE); inputManager.hideSoftInputFromWindow(view.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); } } }
点击除EDITTEXT之外的控件隐藏软键盘,如果是viewgroup控件,递归执行
publicstaticvoidsetupUI(Viewview,finalContextctx){ //Setuptouchlistenerfornon-textboxviewstohidekeyboard. if(!(viewinstanceofEditText)){ view.setOnTouchListener(newOnTouchListener(){ publicbooleanonTouch(Viewv,MotionEventevent){ hideKeyboard(ctx); returnfalse; } }); } //Ifalayoutcontainer,iterateoverchildrenandseedrecursion. if(viewinstanceofViewGroup){ for(inti=0;i<((ViewGroup)view).getChildCount();i++){ ViewinnerView=((ViewGroup)view).getChildAt(i); setupUI(innerView,ctx); } } } ... }
调用时只需要传递最外层的layout即可。
UtilApp.setupUI((RelativeLayout)findViewById(R.id.login_parent),mContext);
希望本文所述对大家Android程序设计有所帮助。