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
Post a Comment