android - How to permanently hide soft keyboard on searchview and edittext -


i want hide soft keyboard everywhere in application permanently. can use custom keyboard. have checked many solutions still soft keyboard appearing. here code register searchview.

   edittext medittext;     searchview msearchview;     public void registersearchview(final searchview sview, final menuitem searchitem ) {         msearchview = sview;         searchmanager searchmanager = (searchmanager) mhostactivity.getsystemservice(context.search_service);         msearchview.setsearchableinfo(searchmanager.getsearchableinfo(mhostactivity.getcomponentname()));         medittext = (edittext) msearchview.findviewbyid(r.id.search_src_text);         imageview closebutton = (imageview) msearchview.findviewbyid(r.id.search_close_btn);         closebutton.setonclicklistener(new view.onclicklistener() {             @override             public void onclick(view v) {                 if (medittext.gettext() == null || medittext.gettext().length() < 1) {                     msearchview.onactionviewcollapsed();                     menuitemcompat.collapseactionview(searchitem);                     hidecustomkeyboard();                 } else {                     medittext.settext("");                     msearchview.setquery("", false);                 }                 //collapse search widget             }         });         medittext.setontouchlistener(ontouch);         msearchview.setontouchlistener(ontouch);         medittext.setonfocuschangelistener(ofocuschange);         msearchview.setonfocuschangelistener(ofocuschange);         medittext.setonclicklistener(onclicklistener);         msearchview.setonclicklistener(onclicklistener);         msearchview.setonsearchclicklistener(onclicklistener);       private view.onclicklistener onclicklistener = new view.onclicklistener() {         @override         public void onclick(view v) {             ((inputmethodmanager) mhostactivity.getsystemservice(actionbaractivity.input_method_service)).hidesoftinputfromwindow(v.getwindowtoken(), 0);             showcustomkeyboard(v);             v.clearfocus();             v.requestfocus();          }     };     private view.ontouchlistener ontouch = new view.ontouchlistener() {         @override         public boolean ontouch(view v, motionevent motionevent) {             if (medittext.gettext()==null || medittext.gettext().length() < 1){                 v.clearfocus();                 v.requestfocus();             }             ((inputmethodmanager) mhostactivity.getsystemservice(actionbaractivity.input_method_service)).hidesoftinputfromwindow(v.getwindowtoken(), 0);             v.ontouchevent(motionevent);             return true;         }     };     private view.onfocuschangelistener  ofocuschange = new view.onfocuschangelistener() {         @override         public void onfocuschange(view v, boolean b) {             if (b == false) {                 hidecustomkeyboard();             } else {                 ((inputmethodmanager) mhostactivity.getsystemservice(actionbaractivity.input_method_service)).hidesoftinputfromwindow(v.getwindowtoken(), 0);                 showcustomkeyboard(v);             }         }     }; 

this work can force android hide keyboard !!

public static void disablesoftinputfromappearing(edittext edittext) {     if (build.version.sdk_int >= 11) {         edittext.setrawinputtype(inputtype.type_class_text);         edittext.settextisselectable(true);     } else {         edittext.setrawinputtype(inputtype.type_null);         edittext.setfocusable(true);     } } 

above code work foresure !!

as search view

 msearchview.clearfocus(); 

will solve issue


Comments