150 questions pull server. how ever cannot seem result radio button in radio group selected in each position. when 1 button selected on number 1 lets number 5 has same result.
ill post code now
customtestadapter
import android.view.layoutinflater; import android.view.view; import android.view.viewgroup; import android.widget.baseadapter; import android.widget.radiobutton; import android.widget.radiogroup; import android.widget.textview; import java.util.arraylist; public class customtestadapter extends baseadapter{ private arraylist<testquestionlist> data; string questionrewrite; public customtestadapter(final arraylist<testquestionlist> data) { this.data=data; } @override public int getcount() { // todo auto-generated method stub return data.size(); } @override public object getitem(int position) { // todo auto-generated method stub return position; } @override public long getitemid(int position) { // todo auto-generated method stub return position; } @override public view getview(final int position, view convertview, viewgroup parent) { // convert view = design viewholder viewholder; if(convertview==null) { convertview=layoutinflater.from(parent.getcontext()).inflate(r.layout.test_row,parent, false); viewholder=new viewholder(convertview); convertview.settag(viewholder); } else viewholder = (viewholder) convertview.gettag(); viewholder.questionnumber.settext("question number : " + data.get(position).getquestionid()); questionrewrite = data.get(position).getquestion(); questionrewrite = questionrewrite.replaceall("1:", system.getproperty("line.separator") + "1:"); questionrewrite = questionrewrite.replaceall("2:", system.getproperty("line.separator") + "2:"); questionrewrite = questionrewrite.replaceall("3:", system.getproperty("line.separator") + "3:"); questionrewrite = questionrewrite.replaceall("4:", system.getproperty("line.separator") + "4:"); questionrewrite = questionrewrite.replaceall("5:", system.getproperty("line.separator") + "5:"); viewholder.question.settext(questionrewrite); viewholder.answeraread.settext(data.get(position).getanswera()); viewholder.answerbread.settext(data.get(position).getanswerb()); viewholder.answercread.settext(data.get(position).getanswerc()); viewholder.answerdread.settext(data.get(position).getanswerd()); viewholder.answereread.settext(data.get(position).getanswere()); viewholder.answeraread.setchecked(data.get(position).getquestionanswer() == "a"); viewholder.answerbread.setchecked(data.get(position).getquestionanswer() == "b"); viewholder.answercread.setchecked(data.get(position).getquestionanswer() == "c"); viewholder.answerdread.setchecked(data.get(position).getquestionanswer() == "d"); viewholder.answereread.setchecked(data.get(position).getquestionanswer() == "e"); viewholder.answeraread.settag(position); viewholder.answerbread.settag(position); viewholder.answercread.settag(position); viewholder.answerdread.settag(position); viewholder.answereread.settag(position); convertview.setonclicklistener(new view.onclicklistener() { @override public void onclick(view view) { viewholder vh = (viewholder) view.gettag(); if (vh.answeraread.ischecked()){ data.get(position).setquestionanswer("a"); }else if (vh.answerbread.ischecked()){ data.get(position).setquestionanswer("b"); }else if (vh.answercread.ischecked()){ data.get(position).setquestionanswer("c"); }else if (vh.answerdread.ischecked()){ data.get(position).setquestionanswer("d"); }else if (vh.answereread.ischecked()){ data.get(position).setquestionanswer("e"); } notifydatasetinvalidated(); notifydatasetchanged(); } }); return convertview; } static class viewholder { textview questionnumber; textview question; radiobutton answeraread; radiobutton answerbread; radiobutton answercread; radiobutton answerdread; radiobutton answereread; radiogroup questionanswers; public viewholder(final view view){ questionnumber = (textview) view.findviewbyid(r.id.questionnumber); question=(textview) view.findviewbyid(r.id.question); answeraread=(radiobutton) view.findviewbyid(r.id.answeraread); answerbread=(radiobutton) view.findviewbyid(r.id.answerbread); answercread=(radiobutton) view.findviewbyid(r.id.answercread); answerdread=(radiobutton) view.findviewbyid(r.id.answerdread); answereread=(radiobutton) view.findviewbyid(r.id.answereread); questionanswers= (radiogroup) view.findviewbyid(r.id.radiogroup1); } } }
the problem in adapter settag, can try following project demo, https://drive.google.com/file/d/0b8qvcdry5jp0c2p4umlnngc2dku/view?usp=sharing
Comments
Post a Comment