android - How do I uncheck checkbox upon new spinner value? -
let's vocspinner value = "combat/service" , popspinner value = "nsmen" , check cb1. give list. however, when change popspinner "regular/nsf" change list (which correct) how uncheck checkbox without creating data overlay. codes provided doesn't seem work , can't work out. welcome, in advance!
imgur.com/a/1wt4n [screenshot of app]
private string[] vocspinner; private string[] popspinner; private list<standard> standardlist = new arraylist<>(); private recyclerview recyclerview; private standardsadapter sadapter; private checkbox cb1; private checkbox cb2; cb1 = (checkbox) getactivity().findviewbyid(r.id.pushup); cb2 = (checkbox) getactivity().findviewbyid(r.id.situp); this.vocspinner = new string[]{ "cdo/diver/gds/fitness spec", "combat/service" }; this.popspinner = new string[]{ "nsmen", "regular/nsf", "pre-enlistee" }; final spinner v = (spinner) getactivity().findviewbyid(r.id.spinner_voc); final spinner p = (spinner) getactivity().findviewbyid(r.id.spinner_popgp); arrayadapter<string> adapterv = new arrayadapter<string>(getactivity(), android.r.layout.simple_spinner_item, vocspinner); v.setadapter(adapterv); arrayadapter<string> adapterp = new arrayadapter<string>(getactivity(), android.r.layout.simple_spinner_item, popspinner); p.setadapter(adapterp); v.setonitemselectedlistener(new adapterview.onitemselectedlistener() { @override public void onitemselected(adapterview<?> parentview, view selecteditemview, int position, long id) { standardlist.clear(); cb1.setenabled(true); cb2.setenabled(true); switch (position) { case 0: if (p.getselecteditem().equals("nsmen")) { cb1.setchecked(false); cb2.setchecked(false); addstandardtolist("gold - $500", ">89pts"); addstandardtolist("silver - $300", ">74pts"); addstandardtolist("incentive - $200", ">60pts"); addstandardtolist("pass", ">50pts"); sadapter.notifydatasetchanged();} else if (p.getselecteditem().equals("regular/nsf")) { cb1.setchecked(false); cb2.setchecked(false); addstandardtolist("gold - $300", ">89pts"); addstandardtolist("silver - $200", ">74pts"); addstandardtolist("incentive", "na"); addstandardtolist("pass", ">60pts"); sadapter.notifydatasetchanged();
in onitemselected listener of spinner have done
cb1.setenabled(true); cb2.setenabled(true); below should
cb1.setchecked(false); cb2.setchecked(false); also if no checkbox checked, manually selecting same values of spinner selected selection listener of spinner called , array repopulated based on spinner values. following in else -
string getselecteditemp = p.getselecteditem().tostring(); p.setselection(((arrayadapter<string>)p.getadapter()).getposition(getselecteditemp)); string getselecteditemv = v.getselecteditem().tostring(); v.setselection(((arrayadapter<string>)p.getadapter()).getposition(getselecteditemv)); so 1 if condition oncheckedchanged like
if (v.getselecteditem().equals("cdo/diver/gds/fitness spec") || v.getselecteditem().equals("combat/service") && p.getselecteditem().equals("nsmen")) { if (cb1.ischecked() && cb2.ischecked()) { addstandardtolist("gold - $500", "na"); addstandardtolist("silver - $300", "na"); addstandardtolist("incentive - $200", "na"); addstandardtolist("pass", ">25pts"); sadapter.notifydatasetchanged(); } else if (cb1.ischecked() || cb2.ischecked()) { addstandardtolist("gold - $500", "na"); addstandardtolist("silver - $300", "na"); addstandardtolist("incentive - $200", "na"); addstandardtolist("pass", ">38pts"); sadapter.notifydatasetchanged(); }else{ // select spinner again here manually. string getselecteditemp = p.getselecteditem().tostring(); p.setselection(((arrayadapter<string>)p.getadapter()).getposition(getselecteditemp)); string getselecteditemv = v.getselecteditem().tostring(); v.setselection(((arrayadapter<string>)p.getadapter()).getposition(getselecteditemv)); } }
Comments
Post a Comment