ok, so, have following listview adapter:
listviewadapter.java
public class listviewadapter extends cursoradapter{ public listviewadapter(context context, cursor cursor) { super(context, cursor, 0); } @override public view newview(context context, cursor cursor, viewgroup parent) { return layoutinflater.from(context).inflate(r.layout.listitem, parent, false); } @override public void bindview(view view, context context, cursor cursor) { // find fields populate in inflated template button btnlist = (button) view.findviewbyid(r.id.btnlist); // populate fields cursor btnlist.settext(cursor.getstring(0)); } } and here xml inflating:
listitem.xml
<?xml version="1.0" encoding="utf-8"?> <button xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/btnlist" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/listview_item" android:focusable="false" android:clickable="false" android:focusableintouchmode="false"/> and using here give listview contents of cursor:
mainactivity.java
listviewadapter lvadapter = new listviewadapter(this, cursor); listview.setadapter(lvadapter); now, how 1 use searchview filter listview everytime change searchview text? (like ontextchange or something)?
i've come far:
searchview.setonquerytextlistener(new searchview.onquerytextlistener() { @override public boolean onquerytextsubmit(string query) { return false; } @override public boolean onquerytextchange(string newtext) { todoadapter.getfilter().filter(newtext); return true; } }); but doesn't anything... if need more information feel free ask :)
my layout: 
i think should use this part project i'm working on here 2 arraylists 1 showprojectlist , projectlist projectlist contains actual data want filter , showprojectlist contains data projectlist filtered , shown.
searchview.addtextchangedlistener(new textwatcher() { @override public void beforetextchanged(charsequence s, int start, int count, int after) { } @override public void ontextchanged(charsequence s, int start, int before, int count) { } @override public void aftertextchanged(editable s) { if (searchview.gettext().tostring().length() == 0) { showprojectlist = projectlist; projectadapter adapter = new projectadapter(getinstance(), showprojectlist); projectlistview.setadapter(adapter); noofprojectfoundtextview.settext(showprojectlist.size() + ""); noprojectfoundlayout.setvisibility(view.gone); } else { showprojectlist = new arraylist<projectmodel>(); showprojectlist.clear(); (int = 0; < projectlist.size(); i++) { if (projectlist.get(i).getprojectname() .tostring() .tolowercase() .startswith( searchview.gettext().tostring().tolowercase()) || projectlist.get(i).getprojectname() .tostring() .tolowercase() .contains( searchview.gettext().tostring().tolowercase())) { projectmodel mdata = new projectmodel(); mdata.projectid = projectlist.get(i).getprojectid(); mdata.itemcount = projectlist.get(i).getitemcount(); mdata.projectname = projectlist.get(i).getprojectname(); mdata.createddate = projectlist.get(i).createddate; mdata.linfolist = projectlist.get(i).getlinfolist(); showprojectlist.add(mdata); } } projectadapter adapter = new projectadapter(getinstance(), showprojectlist); projectlistview.setadapter(adapter); } } });//search ended
Comments
Post a Comment