android - I am facing error to fetch FloatingSearchView result inside ArraList: (java.lang.String)' on a null object reference -
my fragment code.
private final string tag = "blankfragment"; public static final long find_suggestion_simulated_delay = 250; private floatingsearchview msearchview; private appbarlayout mappbar; private textview transtextview; private translationdatasource translation_data_source; private boolean misdarksearchtheme = false; private string mlastquery = ""; public scrollingsearchexamplefragment() { // required empty public constructor } @override public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) { return inflater.inflate(r.layout.fragment_scrolling_search_example, container, false); } @override public void onviewcreated(view view, @nullable bundle savedinstancestate) { super.onviewcreated(view, savedinstancestate); msearchview = (floatingsearchview) view.findviewbyid(r.id.floating_search_view); mappbar = (appbarlayout) view.findviewbyid(r.id.appbar); transtextview = (textview) view.findviewbyid(r.id.wordtranslated); mappbar.addonoffsetchangedlistener(this); setupdrawer(); setupsearchbar(); } private void setupsearchbar() { msearchview.setonquerychangelistener(new floatingsearchview.onquerychangelistener() { @override public void onsearchtextchanged(string oldquery, final string newquery) { if (!oldquery.equals("") && newquery.equals("")) { msearchview.clearsuggestions(); } else { //this shows top left circular progress //you can call ever want, //it makes sense when loading in //the background. msearchview.showprogress(); //simulates query call data source //with new query. datahelper.findsuggestions(getactivity(), newquery, 5, find_suggestion_simulated_delay, new datahelper.onfindsuggestionslistener() { @override public void onresults(list<colorsuggestion> results) { //this swap data , //render collapse/expand animations necessary msearchview.swapsuggestions(results); //let users know background //process has completed msearchview.hideprogress(); } }); } log.d(tag, "onsearchtextchanged()"); } }); msearchview.setonsearchlistener(new floatingsearchview.onsearchlistener() { @override public void onsuggestionclicked(final searchsuggestion searchsuggestion) { colorsuggestion colorsuggestion = (colorsuggestion) searchsuggestion; datahelper.findcolors(getactivity(), colorsuggestion.getbody(), new datahelper.onfindcolorslistener() { @override public void onresults(list<colorwrapper> results) { //show search results } }); log.d(tag, "onsuggestionclicked()"); mlastquery = searchsuggestion.getbody(); } @override public void onsearchaction(string query) { mlastquery = query; toast.maketext(getactivity(), query, toast.length_short).show(); string searchword = query.tostring(); transtextview.settext(""); arraylist<translation> translation_array_long = translation_data_source.getengengtranslation(msearchview.getquery()); if(translation_array_long.size() > 0) { transtextview.append(html.fromhtml("<p><b>" + msearchview.getquery() + "</b></p>")); // ("<p><b>source: wikipedia</b></p>")); for(int = 0; < translation_array_long.size(); i++) { transtextview.append(html.fromhtml("<p>" + translation_array_long.get(i).gettranslation() + "</p>")); } transtextview.append(html.fromhtml("<br/><br/>")); } else { transtextview.append("word not found!"); } /* datahelper.findcolors(getactivity(), query, new datahelper.onfindcolorslistener() { @override public void onresults(list<colorwrapper> results) { //show search results } }); */ log.d(tag, "onsearchaction()"); } }); msearchview.setonfocuschangelistener(new floatingsearchview.onfocuschangelistener() { @override public void onfocus() { //show suggestions when search bar gains focus (typically history suggestions) msearchview.swapsuggestions(datahelper.gethistory(getactivity(), 3)); log.d(tag, "onfocus()"); } @override public void onfocuscleared() { //set title of bar when focus returned new query begins msearchview.setsearchbartitle(mlastquery); //you can set setsearchtext(...) make keep query there when not focused , when focus returns //msearchview.setsearchtext(searchsuggestion.getbody()); log.d(tag, "onfocuscleared()"); } }); //handle menu clicks same way //in regular activity msearchview.setonmenuitemclicklistener(new floatingsearchview.onmenuitemclicklistener() { @override public void onactionmenuitemselected(menuitem item) { if (item.getitemid() == r.id.action_change_colors) { misdarksearchtheme = true; //demonstrate setting colors items msearchview.setbackgroundcolor(color.parsecolor("#787878")); msearchview.setviewtextcolor(color.parsecolor("#e9e9e9")); msearchview.sethinttextcolor(color.parsecolor("#e9e9e9")); msearchview.setactionmenuoverflowcolor(color.parsecolor("#e9e9e9")); msearchview.setmenuitemiconcolor(color.parsecolor("#e9e9e9")); msearchview.setleftactioniconcolor(color.parsecolor("#e9e9e9")); msearchview.setclearbtncolor(color.parsecolor("#e9e9e9")); msearchview.setdividercolor(color.parsecolor("#bebebe")); msearchview.setleftactioniconcolor(color.parsecolor("#e9e9e9")); } else { //just print action toast.maketext(getactivity().getapplicationcontext(), item.gettitle(), toast.length_short).show(); } } }); //use listener listen menu clicks when app:floatingsearch_leftaction="showhome" msearchview.setonhomeactionclicklistener(new floatingsearchview.onhomeactionclicklistener() { @override public void onhomeclicked() { log.d(tag, "onhomeclicked()"); } }); /* * here have access left icon , text of given suggestion * item after bound suggestion list. can utilize * callback change properties of left icon , text. example, * can load left icon images using favorite image loading library, or change text color. * * * important: * keep in mind suggestion list recyclerview, views reused different * items in list. */ msearchview.setonbindsuggestioncallback(new searchsuggestionsadapter.onbindsuggestioncallback() { @override public void onbindsuggestion(view suggestionview, imageview lefticon, textview textview, searchsuggestion item, int itemposition) { colorsuggestion colorsuggestion = (colorsuggestion) item; string textcolor = misdarksearchtheme ? "#ffffff" : "#000000"; string textlight = misdarksearchtheme ? "#bfbfbf" : "#787878"; if (colorsuggestion.getishistory()) { lefticon.setimagedrawable(resourcescompat.getdrawable(getresources(), r.drawable.ic_history_black_24dp, null)); util.seticoncolor(lefticon, color.parsecolor(textcolor)); lefticon.setalpha(.36f); } else { lefticon.setalpha(0.0f); lefticon.setimagedrawable(null); } textview.settextcolor(color.parsecolor(textcolor)); string text = colorsuggestion.getbody() .replacefirst(msearchview.getquery(), "<font color=\"" + textlight + "\">" + msearchview.getquery() + "</font>"); textview.settext(html.fromhtml(text)); } }); } @override public void onoffsetchanged(appbarlayout appbarlayout, int verticaloffset) { msearchview.settranslationy(verticaloffset); } @override public boolean onactivitybackpress() { //if msearchview.setsearchfocused(false) causes focused search //to close, don't want close activity. if msearchview.setsearchfocused(false) //returns false, know search closed call didn't change focus //state , makes sense call supper onbackpressed() , close activity if (!msearchview.setsearchfocused(false)) { return false; } return true; } private void setupdrawer() { attachsearchviewactivitydrawer(msearchview); } 08-18 15:58:49.443 5570-5570/com.arlib.floatingsearchviewdemo e/inputeventsender: exception dispatching finished signal. 08-18 15:58:49.443 5570-5570/com.arlib.floatingsearchviewdemo e/messagequeue-jni: exception in messagequeue callback: handlereceivecallback 08-18 15:58:49.444 5570-5570/com.arlib.floatingsearchviewdemo e/messagequeue-jni: java.lang.nullpointerexception: attempt invoke virtual method 'java.util.arraylist com.arlib.floatingsearchviewdemo.data.translationdatasource.getengengtranslation(java.lang.string)' on null object reference @ com.arlib.floatingsearchviewdemo.fragment.scrollingsearchexamplefragment$2.onsearchaction(scrollingsearchexamplefragment.java:141) @ com.arlib.floatingsearchview.floatingsearchview$9.onsearchkeyclicked(floatingsearchview.java:662) @ com.arlib.floatingsearchview.util.view.searchinputview$1.onkey(searchinputview.java:19) @ android.view.view.dispatchkeyevent(view.java:8406) @ android.view.viewgroup.dispatchkeyevent(viewgroup.java:1495) @ android.view.viewgroup.dispatchkeyevent(viewgroup.java:1495) @ android.view.viewgroup.dispatchkeyevent(viewgroup.java:1495) @ android.view.viewgroup.dispatchkeyevent(viewgroup.java:1495) @ android.view.viewgroup.dispatchkeyevent(viewgroup.java:1495) @ android.view.viewgroup.dispatchkeyevent(viewgroup.java:1495) @ android.view.viewgroup.dispatchkeyevent(viewgroup.java:1495) @ android.view.viewgroup.dispatchkeyevent(viewgroup.java:1495) @ android.view.viewgroup.dispatchkeyevent(viewgroup.java:1495) @ android.view.viewgroup.dispatchkeyevent(viewgroup.java:1495) @ android.view.viewgroup.dispatchkeyevent(viewgroup.java:1495) @ android.view.viewgroup.dispatchkeyevent(viewgroup.java:1495) @ android.view.viewgroup.dispatchkeyevent(viewgroup.java:1495) @ android.view.viewgroup.dispatchkeyevent(viewgroup.java:1495) @ android.view.viewgroup.dispatchkeyevent(viewgroup.java:1495) @ com.android.internal.policy.impl.phonewindow$decorview.superdispatchkeyevent(phonewindow.java:2361) @ com.android.internal.policy.impl.phonewindow.superdispatchkeyevent(phonewindow.java:1709) @ android.app.activity.dispatchkeyevent(activity.java:2702) @ android.support.v7.app.appcompatactivity.dispatchkeyevent(appcompatactivity.java:541) @ android.support.v7.view.windowcallbackwrapper.dispatchkeyevent(windowcallbackwrapper.java:59) @ android.support.v7.app.appcompatdelegateimplbase$appcompatwindowcallbackbase.dispatchkeyevent(appcompatdelegateimplbase.java:319) @ com.android.internal.policy.impl.phonewindow$decorview.dispatchkeyevent(phonewindow.java:2276) @ android.view.viewrootimpl$viewpostimeinputstage.processkeyevent(viewrootimpl.java:4020) @ android.view.viewrootimpl$viewpostimeinputstage.onprocess(viewrootimpl.java:3982) @ android.view.viewrootimpl$inputstage.deliver(viewrootimpl.java:3544) @ android.view.viewrootimpl$inputstage.ondelivertonext(viewrootimpl.java:3597) @ android.view.viewrootimpl$inputstage.forward(viewrootimpl.java:3563) @ android.view.viewrootimpl$asyncinputstage.forward(viewrootimpl.java:3680) @ android.view.viewrootimpl$inputstage.apply(viewrootimpl.java:3571) @ android.view.viewrootimpl$asyncinputstage.apply(viewrootimpl.java:3737) @ android.view.viewrootimpl$inputstage.deliver(viewrootimpl.java:3544) @ android.view.viewrootimpl$inputstage.ondelivertonext(viewrootimpl.java:3597) @ android.view.viewrootimpl$inputstage.forward(viewrootimpl.java:3563) @ android.view.viewrootimpl$inputstage.apply(viewrootimpl.java:3571) @ android.view.viewrootimpl$inputstage.deliver(viewrootimpl.java:3544) @ android.view.viewrootimpl$inputstage.ondelivertonext(viewrootimpl.java:3597) @ android.view.viewrootimpl$inputstage.forward(viewrootimpl.java:3563) @ android.view.viewrootimpl$asyncinputstage.forward(viewrootimpl.java:3713) @ android.view.viewrootimpl$imeinputstage.onfinishedinputevent(viewrootimpl.java:3874) @ android.view.inputmethod.inputmethodmanager$pendingevent.run(inputmethodmanager.java:2208) @ android.view.inputmethod.inputmethodmanager.invokefinishedinputeventcallback(inputmethodmanager.java:1849) @ android.view.inputmethod.inputmethodmanager.finishedinputevent(inputmethodmanager.java:1840) @ android.view.inputmethod.inputmethodmanager$imeinputeventsender.oninputeventfinished(inputmethodmanager.java:2185) @ android.view.inputeventsender.dispatchinputeventfinished
Comments
Post a Comment