android - Can I implement Google Guava Search in SearchView -


i'm using searchview in custom list. shows wrong result i.e. same result every time(first item of list). so, try use google's gauva filter , works great when log result after filter. don't know how integrate listview.

here code of customlist.java package com.jarvis.easysplay.adapter;

    public class customlist extends arrayadapter  implements filterable{     private string[] names;     private string[] desc;     private integer[] imageid;     private activity context;      public customlist(activity context, string[] names, string[] desc) {         super(context, r.layout.list_item, names);         this.context = context;         this.names = names;         this.desc = desc; //        this.imageid = imageid;      }      @override     public view getview(final int position, view convertview, viewgroup parent) {         layoutinflater inflater = context.getlayoutinflater();         view listviewitem = inflater.inflate(r.layout.song_list_layout, null, true);         textview textviewname = (textview) listviewitem.findviewbyid(r.id.song_title);         textview textviewdesc = (textview) listviewitem.findviewbyid(r.id.song_author);         imageview image = (imageview) listviewitem.findviewbyid(r.id.imageview); //        textview options = (textview) listviewitem.findviewbyid(r.id.options);          //set data         textviewname.settext(names[position]);         textviewdesc.settext(desc[position]);         return  listviewitem;     }      @nonnull     @override     public filter getfilter() {         return super.getfilter();     }  } 

and search filter code:-

   public void oncreateoptionsmenu(menu menu, menuinflater inflater) {         inflater.inflate(r.menu.music_search, menu);         menuitem searchitem = menu.finditem(r.id.music_search_bar);         searchview searchview = (searchview) searchitem.getactionview();         searchview.setqueryhint("search song");         searchview.setonquerytextlistener(new searchview.onquerytextlistener() {              @override             public boolean onquerytextsubmit(string query) {                 return true;             }              @override             public boolean onquerytextchange(string newtext) { //                songfragment.this.customlist.getfilter().filter(newtext); //i used not working                 list<string> list = new arraylist<>();                 list.addall(arraylist);                 list<string> filteredlist = lists.newarraylist(collections2.filter(                         list, predicates.contains(pattern.compile(newtext,pattern.case_insensitive))));                 string[] stringarray = filteredlist.toarray(new string[0]);                 customlist custom = new customlist(getactivity(),stringarray,stringarray);                 custom.getfilter().filter(newtext);                  log.d("searchresult",filteredlist.tostring());                 return false;              }         });          super.oncreateoptionsmenu(menu, inflater);     } 

can tell me how can use google's guava in code or how correct result using without using google's guava filter. did google , try many solutions didn't work :(.

you're creating new customlist adapter, aren't doing it. you'll need install new adapter in listview or whatever adapterview using. if you're using listview, call listview.setadapter(custom). don't need mix , match filtering using filterable , filtering guava.


Comments

Popular posts from this blog

ubuntu - PHP script to find files of certain extensions in a directory, returns populated array when run in browser, but empty array when run from terminal -

php - How can i create a user dashboard -

javascript - How to detect toggling of the fullscreen-toolbar in jQuery Mobile? -