android - Get the position in a ListView of a Spinner and get its selected value -
i implemented arrayadapter listview:
public class calcamrlistadapter extends arrayadapter<amrstatelistentry> implements onitemselectedlistener { public calcamrlistadapter(context context, list<amrstatelistentry> entries) { super(context, r.layout.activity_calc_amr_fragment_row, entries); } @override public view getview(int position, view convertview, viewgroup parent) { amrstatelistentry entry = this.getitem(position); viewholder viewholder = null; layoutinflater inflater = null; if(convertview == null) { viewholder = new viewholder(); inflater = layoutinflater.from(this.getcontext()); convertview = inflater.inflate(r.layout.activity_calc_amr_fragment_row, parent, false); viewholder.spinneractivity = (spinner) convertview.findviewbyid(r.id.calc_amr_row_spinner_activity); viewholder.spinnerhours = (spinner) convertview.findviewbyid(r.id.calc_amr_row_spinner_hours); viewholder.textviewpal = (textview) convertview.findviewbyid(r.id.calc_amr_row_textview_pal); viewholder.imagebuttondelete = (imagebutton) convertview.findviewbyid(r.id.calc_amr_row_button_delete); convertview.settag(viewholder); } else { viewholder = (viewholder) convertview.gettag(); } string pal = null; switch (entry.getactivity()) { case 1: pal = "" + 0.95; break; case 2: pal = "" + 1.2; break; case 3: pal = "" + 1.5; break; case 4: pal = "" + 1.7; break; case 5: pal = "" + 1.9; break; case 6: pal = "" + 2.4; break; default: pal = ""; break; } viewholder.spinneractivity.setselection(entry.getactivity()); viewholder.spinneractivity.setonitemselectedlistener(this); viewholder.spinnerhours.setselection(entry.gethour()); viewholder.spinnerhours.setonitemselectedlistener(this); viewholder.textviewpal.settext(pal); viewholder.imagebuttondelete.setimageresource(r.drawable.ic_remove_row); return convertview; } @override public void onitemselected(adapterview<?> parent, view view, int position, long id) { } @override public void onnothingselected(adapterview<?> parent) {} private static class viewholder { spinner spinneractivity = null; spinner spinnerhours = null; textview textviewpal = null; imagebutton imagebuttondelete = null; } } as can see each item of listview contains 2 spinner. in onitemselected method need position of row in listview spinner used select value , need differ between 2 spinners in 1 row. data model amrstatelistentry. need set selected values of spinners inside amrstatelistentry.
how can that?
viewholder.spinnerhours.setonitemselectedlistener(new onitemselectedlistener() { @override public void onitemselected(adapterview<?> parent, view view, int positioninspinner, long id) { // todo auto-generated method stub } @override public void onnothingselected(adapterview<?> parent) { // todo auto-generated method stub } }); create instead. set public view getview(final int position, view convertview, viewgroup parent) position final. can use final int position inside onitemselected.
and same other spinner
Comments
Post a Comment