android - Filtering SPINNER for XML data that had been retrieved -


i code url sources(xml data) how should that? i'm able retrieve data source list view. however, couldn't filtered.

example: spinner : "today","tomorrow" upon select "today" show out events today. upon select "tomorrow" show out events tomorrow. 

can me out?

i've tried out coding, however, met error.

i xml data here:

<start_time>2013-09-25 09:00:00 </start_time> 

![screenshot of xml][1]

here java code:

public class androidxmlparsingactivity extends listactivity implements onitemselectedlistener {      string[] browseby;     date d = new date();      string[] dates = { "today", "tomorrow", "next week",      };      arraylist<string> browse = new arraylist<string>();     arraylist<string> mpostingdata = new arraylist<string>();     spinner s1;     listview listview;     customadapter cus;      // static variables     static final string url = "http://api.eventful.com/rest/events/search?app_key=42t54cx7rbrdfczc&location=singapore";     // xml node keys     static final string key_event = "event"; // parent node     static final string key_title = "title";     static final string key_start_time = "start_time";       @override     public void oncreate(bundle savedinstancestate) {         super.oncreate(savedinstancestate);         setcontentview(r.layout.activity_main);          arraylist<hashmap<string, string>> menuitems = new arraylist<hashmap<string, string>>();          xmlparser parser = new xmlparser();         string xml = parser.getxmlfromurl(url); // getting xml         document doc = parser.getdomelement(xml); // getting dom element          nodelist nl = doc.getelementsbytagname(key_event);         // looping through item nodes <item>         (int = 0; < nl.getlength(); i++) {             // creating new hashmap             hashmap<string, string> map = new hashmap<string, string>();             element e = (element) nl.item(i);             // adding each child node hashmap key => value             map.put(key_title, parser.getvalue(e, key_title));               map.put(key_start_time, parser.getvalue(e, key_start_time));              // adding hashlist arraylist             menuitems.add(map);         }          // adding menuitems listview         listadapter adapter = new simpleadapter(this, menuitems,                 r.layout.list_item, new string[] { key_title,key_start_time }, new int[] {                         r.id.title,                         r.id.starttime });          setlistadapter(adapter);          // selecting single listview item         listview lv = getlistview();          lv.setonitemclicklistener(new onitemclicklistener() {              @override             public void onitemclick(adapterview<?> parent, view view,                     int position, long id) {                 // getting values selected listitem                 string title = ((textview) view.findviewbyid(r.id.title))                         .gettext().tostring();                   // starting new intent                 intent in = new intent(getapplicationcontext(),                         singlemenuitemactivity.class);                 in.putextra(key_title, title);                   startactivity(in);              }         });         listview = (listview) findviewbyid(r.id.listview1);         s1 = (spinner) findviewbyid(r.id.spinner1);         (int = 0; < browseby.length; i++) {             browse.add(browseby[i]);         }          // aa = new         // arrayadapter<string>(this,android.r.layout.simple_list_item_1,category);         s1.setonitemselectedlistener(this);         mpostingdata = browse;         (int = 0; < mpostingdata.size(); i++) {             if (mpostingdata.size() > 0)                 log.i("datas", mpostingdata.get(i));         }         cus = new customadapter(this, 0);         setlistadapter(cus);          arrayadapter<string> aa = new arrayadapter<string>(this,                 android.r.layout.simple_spinner_item, dates);          aa.setdropdownviewresource(android.r.layout.simple_spinner_dropdown_item);         s1.setadapter(aa);         }      public void onitemselected(adapterview<?> parent, view v, int position,             long id) {         // listview.setfiltertext(category[position]);         string text = s1.getselecteditem().tostring();         cus.getfilter().filter(text);         cus.notifydatasetchanged();         }          public void onnothingselected(adapterview<?> parent) {         // listview.setfiltertext("");         }          public void onlistitemclick(listview parent, view v, int position, long id) {         toast.maketext(this, "you have selected " + mpostingdata.get(position),                 toast.length_short).show();         }          class customadapter extends arrayadapter<string> {          public void setdata(arraylist<string> mppst) {             mpostingdata = mppst;// contains class items data.         }          @override         public filter getfilter() {             return new filter() {                 @override                 protected void publishresults(charsequence constraint,                         filterresults start_time) {                     if (start_time != null && start_time.count >= 0) {                         setdata((arraylist<string>) start_time.values);                     } else {                         setdata(browse);// set original values                     }                      notifydatasetinvalidated();                 }                  @override                 protected filterresults performfiltering(charsequence constraint) {                     filterresults result = new filterresults();                     if(constraint=="today")  {                          constraint = constraint.tostring();                         charsequence s  = dateformat.format("yyyy-mm-dd ", d.gettime());                         arraylist<string> founditems = new arraylist<string>();                         if (browse != null) {                             (int = 0; < browse.size(); i++) {                                  if (browse.get(i).contains(s)){                                     system.out.println("my datas" + browse.get(i));                                     founditems.add(browse.get(i));                                  } else {                                    }                             }                         }                         result.count = founditems.size();// search results found                                                             // return count                         result.values = founditems;// return values                     } else {                         result.count = -1;// no search results found                     }                      return result;                 }             };         }          layoutinflater minflater;          public customadapter(context context, int textviewresourceid) {             super(context, textviewresourceid);             // todo auto-generated constructor stub             minflater = (layoutinflater) context                     .getsystemservice(context.layout_inflater_service);         }          @override         public int getcount() {             // todo auto-generated method stub             return mpostingdata.size();         }          @override         public long getitemid(int position) {             // todo auto-generated method stub             return position;         }          @override         public view getview(int position, view convertview, viewgroup parent) {             // todo auto-generated method stub             viewholder vh;             if (convertview == null) {                 vh = new viewholder();                 convertview = minflater.inflate(r.layout.row, null);                 vh.t1 = (textview) convertview.findviewbyid(r.id.textview1);                  convertview.settag(vh);             } else {                 // viewholder fast access textview                 // , imageview.                 vh = (viewholder) convertview.gettag();             }             if (mpostingdata.size() > 0)                 vh.t1.settext(mpostingdata.get(position));             return convertview;         }          }          static class viewholder {         textview t1;         }         } 

i rather create database , put data in it. through correct use of sql, php , json parsing, able correct data. suggesting use database, since data can manipulated in better way through sql.

for example getting events current date , sorting them done through sql query statement. following tutorial should give kickstart:

how connect android php/mysql


Comments

Popular posts from this blog

basic authentication with http post params android -

vb.net - Virtual Keyboard commands -

css - Firefox for ubuntu renders wrong colors -