sqlite - Set Spinner value based on database record in android -



sqlite - Set Spinner value based on database record in android -

i pulling info database , populating series of edittexts , spinners data.

i can fill edittexts without issue spinners resetting default values.

i have tried using setselection() doesn't work.

here code:

spinner = (spinner) rootview.findviewbyid(r.id.vehicle); arrayadapter<string> adapter = new arrayadapter<string>(getactivity(), android.r.layout.simple_spinner_item, new string[] {"car", "bus", "plane", "bicycle"}); adapter.setdropdownviewresource(android.r.layout.simple_spinner_dropdown_item); spinner.setadapter(adapter); spinner.getonitemselectedlistener(); spinner = (spinner) rootview.findviewbyid(r.id.category); arrayadapter<string> adaptercategory = new arrayadapter<string>(getactivity(), android.r.layout.simple_spinner_item, new string[] {"vacation", "commute", "leisure", "shopping"}); adaptercategory.setdropdownviewresource(android.r.layout.simple_spinner_dropdown_item); spinner.setadapter(adaptercategory); spinner.getonitemselectedlistener(); } public void updatetripview(string position) { cursor cursor = ((triplistactivity)getactivity()).dbhelper.fetchtripbyid(position); if (cursor != null) { seek { string tripid = cursor.getstring(cursor.getcolumnindexorthrow("tripid")); int tripcategory = cursor.getint(cursor.getcolumnindexorthrow("category")); int tripvehicle = cursor.getint(cursor.getcolumnindexorthrow("vehicle")); string tripdistance = cursor.getstring(cursor.getcolumnindexorthrow("distance")); string tripdate = cursor.getstring(cursor.getcolumnindexorthrow("date")); string tripnote = cursor.getstring(cursor.getcolumnindexorthrow("note")); ((textview) rootview.findviewbyid(r.id.tripid)).settext(tripid); ((spinner) rootview.findviewbyid(r.id.category)).setselection(tripcategory); ((spinner) rootview.findviewbyid(r.id.vehicle)).setselection(tripvehicle); ((textview) rootview.findviewbyid(r.id.distance)).settext(tripdistance); ((textview) rootview.findviewbyid(r.id.date)).settext(tripdate); ((textview) rootview.findviewbyid(r.id.note)).settext(tripnote); } grab (illegalargumentexception e) { log.d(tag, "illegalargumentexception"); } } mcurrentposition = position; }

edit: found solution based on answers here: how set selected item of spinner value, not position?

//get index value of spinner private int getindex(spinner spinner, string mystring) { int index = 0; (int i=0;i<spinner.getcount();i++){ if (spinner.getitematposition(i).tostring().equalsignorecase(mystring)){ index = i; break; } } homecoming index; }

and amended updatetrip class:

public void updatetripview(string position) { cursor cursor = ((triplistactivity)getactivity()).dbhelper.fetchtripbyid(position); if (cursor != null) { seek { string tripid = cursor.getstring(cursor.getcolumnindexorthrow("tripid")); string tripcategory = cursor.getstring(cursor.getcolumnindexorthrow("category")); string tripvehicle = cursor.getstring(cursor.getcolumnindexorthrow("vehicle")); string tripdistance = cursor.getstring(cursor.getcolumnindexorthrow("distance")); string tripdate = cursor.getstring(cursor.getcolumnindexorthrow("date")); string tripnote = cursor.getstring(cursor.getcolumnindexorthrow("note")); spinner = ((spinner) rootview.findviewbyid(r.id.category)); arrayadapter<string> adaptercategory = new arrayadapter<string>(getactivity(), android.r.layout.simple_spinner_item, new string[] {"vacation", "commute", "leisure", "shopping"}); spinner.setadapter(adaptercategory); ((textview) rootview.findviewbyid(r.id.tripid)).settext(tripid); //set spinner value based on index spinner.setselection(getindex(spinner, tripcategory)); spinner1 = ((spinner) rootview.findviewbyid(r.id.vehicle)); arrayadapter<string> adapter = new arrayadapter<string>(getactivity(), android.r.layout.simple_spinner_item, new string[] {"car", "bus", "plane", "bicycle"}); adapter.setdropdownviewresource(android.r.layout.simple_spinner_dropdown_item); spinner1.setadapter(adapter); //set spinner value based on index spinner1.setselection(getindex(spinner1, tripvehicle)); ((textview) rootview.findviewbyid(r.id.distance)).settext(tripdistance); ((textview) rootview.findviewbyid(r.id.date)).settext(tripdate); ((textview) rootview.findviewbyid(r.id.note)).settext(tripnote); } grab (illegalargumentexception e) { log.d(tag, "illegalargumentexception"); } } mcurrentposition = position; }

android sqlite android-spinner

Comments

Popular posts from this blog

java - How to set log4j.defaultInitOverride property to false in jboss server 6 -

c - GStreamer 1.0 1.4.5 RTSP Example Server sends 503 Service unavailable -

Using ajax with sonata admin list view pagination -