after filter listview,how can obtain position of first listview? use simpleadapter fill listview. each item in datasource has own id,and use "case" redirect them. after filter listview ,i don't know how associate latter items first listview.the postion , id have changed. thank you.
use aftertextchanged of edittextview filter listview , notify it. @override public void aftertextchanged(editable parameditable) { listitemscopy.clear(); int count=simpleadapter.getcount(); if ((count>0 )&¶meditable.length()>0) { (int = 0; < simpleadapter.getcount(); i++) { map<string,object> tempmap=(map<string,object>)simpleadapter.getitem(i); string itemname=tempmap.get("name").tostring(); hashmap<string, object> temphashmap=new hashmap<string, object>(); int copycount=0; if(itemname.tolowercase().contains(parameditable.tostring().tolowercase())){ temphashmap=(hashmap<string, object>)simpleadapter.getitem(i); listitemscopy.add(temphashmap); copycount++; } } if(listitemscopy!=null){ handler handler=new handler(); handler.postdelayed(new runnable() { @override public void run() { simpleadaptercopy = new simpleadapter(getactivity(), listitemscopy, r.layout.right_menu_list_view, new string[] { "name", "id", "image" }, new int[] { r.id.rightmenulistviewtextview1, r.id.rightmenulistviewtextview2, r.id.rightmenulistviewimageview1 }); simpleadapter.setviewbinder(new viewbinder() { @override public boolean setviewvalue(view view, object data, string textrepresentation) { if ((view instanceof imageview && data instanceof bitmap)) { imageview iv = (imageview) view; iv.setimagebitmap((bitmap) data); return true; } else { return false; } } }); listview.setadapter(simpleadaptercopy); simpleadapter.notifydatasetchanged(); } }, 1000); } } else { listview.setadapter(simpleadapter); simpleadapter.notifydatasetchanged(); } }
then want use method onitemclick of listview redirect different intent.as datasource has changed,both position , id different want
@override public void onitemclick(adapterview<?> parent, view view, int position, long id) { intent intent = null; switch (position) {}`
i slove 3 arrays. test code:
string positionstring[]=new string[22]; int latterposition[]=new int[22]; (int = 0; < latterposition.length; i++) { positionstring[i]=""; latterposition[i]=0; } int lattercount=0; (int = 0; < positions.length; i++) { if (positions[i]==10) { positionstring[lattercount]=i+""; latterposition[lattercount]=10; lattercount++; } }
Comments
Post a Comment