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程序设计有所帮助。