Android: radio group in list view not working -



Android: radio group in list view not working -

when click radio grouping first item corresponding items should selected when check box checked if check box not checked corresponding items radio button should not checked. if click in between first item radio button should deselect else if click unchecked radio button check box should checked , radio button checked. want accomplish in this.

my problem below code when click first item items getting selected if click item in between first item getting deselected , button clicked re positioned

teacherassessmentfragmentchild.java

package com.example.playit; import java.util.arraylist; import android.annotation.suppresslint; import android.content.context; import android.os.bundle; import android.support.v4.app.fragment; import android.view.layoutinflater; import android.view.view; import android.view.viewgroup; import android.widget.adapterview; import android.widget.adapterview.onitemclicklistener; import android.widget.listview; @suppresslint("newapi") public class teacherassessmentfragmentchild extends fragment { static context context; arraylist<teacherassessmentfragmentchildcontainer> assessmentcontainer=new arraylist<>(); view rootview ; listview lstassessment; teacherassessmentfragmentchildlistadapter listadapter; @override public view oncreateview(final layoutinflater inflater, final viewgroup container, bundle savedinstancestate) { rootview = inflater.inflate(r.layout.teacher_asseessment_view_fragment_child, container, false); initialize(); context = teacherassessmentfragment.context; assessmentcontainer.add(new teacherassessmentfragmentchildcontainer("chapter", "-1")); assessmentcontainer.add(new teacherassessmentfragmentchildcontainer("chp - 1 algebra", "1")); assessmentcontainer.add(new teacherassessmentfragmentchildcontainer("chp - 2 trignomentry", "-1")); assessmentcontainer.add(new teacherassessmentfragmentchildcontainer("chp - 3 integration", "4")); assessmentcontainer.add(new teacherassessmentfragmentchildcontainer("chp - 4 differentiation", "3")); assessmentcontainer.add(new teacherassessmentfragmentchildcontainer("chp - 5 abacus", "2")); assessmentcontainer.add(new teacherassessmentfragmentchildcontainer("chp - 6 numbersystem", "-1")); assessmentcontainer.add(new teacherassessmentfragmentchildcontainer("chp - 7 algebra", "-1")); assessmentcontainer.add(new teacherassessmentfragmentchildcontainer("chp - 8 algebra", "2")); listadapter=new teacherassessmentfragmentchildlistadapter(context, 0, assessmentcontainer); lstassessment.setadapter(listadapter); listadapter.notifydatasetchanged(); homecoming rootview; } public void initialize() { lstassessment=(listview) rootview.findviewbyid(r.id.teacher_assessment_view_fragment_clild_assessment_list); } }

teacherassessmentfragmentchildcontainer.java

bundle com.example.playit; public class teacherassessmentfragmentchildcontainer { string chaptername,moduleselected; boolean ismoduleactive; public teacherassessmentfragmentchildcontainer(string chaptername, string moduleselected) { super(); this.chaptername = chaptername; this.moduleselected = moduleselected; if(moduleselected.equalsignorecase("-1")) ismoduleactive=false; else ismoduleactive=true; } public boolean getismoduleactive() { homecoming ismoduleactive; } public void setismoduleactive(boolean ismoduleactive) { this.ismoduleactive = ismoduleactive; } public string getchaptername() { homecoming chaptername; } public string getmoduleselected() { homecoming moduleselected; } public void setmoduleselected(string moduleselected) { this.moduleselected = moduleselected; } }

teacherassessmentfragmentchildlistadapter

package com.example.playit; import java.util.arraylist; import android.annotation.suppresslint; import android.content.context; import android.view.layoutinflater; import android.view.view; import android.view.view.onclicklistener; import android.view.viewgroup; import android.widget.arrayadapter; import android.widget.checkbox; import android.widget.radiobutton; import android.widget.radiogroup; import android.widget.radiogroup.oncheckedchangelistener; import android.widget.textview; @suppresslint("newapi") public class teacherassessmentfragmentchildlistadapter extends arrayadapter<teacherassessmentfragmentchildcontainer> { static context context; static arraylist<teacherassessmentfragmentchildcontainer> container = new arraylist<>(); viewholder holder; static int checkboxcount = 0, radiocount = 0, selectedposition = -1; public teacherassessmentfragmentchildlistadapter(context context, int resource, arraylist<teacherassessmentfragmentchildcontainer> container) { super(context, resource, container); this.context = context; this.container = container; } @override public int getviewtypecount() { // count=size of arraylist. homecoming container.size(); } @override public int getitemviewtype(int position) { homecoming position; } @override public int getcount() { // todo auto-generated method stub homecoming super.getcount(); } public class viewholder { textview txvchaptername; checkbox ckbselectname; radiogroup rgassessment; radiobutton assessment1, assessment2, assessment3, assessment4, assessment5; } @override public view getview(int position, view convertview, viewgroup parent) { // system.out.println("getview:" + position + " " + convertview); view row = convertview; if (row == null) { layoutinflater inflater = (layoutinflater) context .getsystemservice(context.layout_inflater_service); row = inflater .inflate( r.layout.teacher_assessment_view_fragment_child_list_adapter, parent, false); holder = new viewholder(); holder.txvchaptername = (textview) row .findviewbyid(r.id.teacher_view_fragment_child_list_adapter_chapter); holder.ckbselectname = (checkbox) row .findviewbyid(r.id.teacher_view_fragment_child_list_adapter_select); holder.rgassessment = (radiogroup) row .findviewbyid(r.id.teacher_view_fragment_child_list_adapter_assessment_group); holder.assessment1 = (radiobutton) holder.rgassessment .findviewbyid(r.id.teacher_view_fragment_child_list_adapter_assessment1); holder.assessment2 = (radiobutton) holder.rgassessment .findviewbyid(r.id.teacher_view_fragment_child_list_adapter_assessment2); holder.assessment3 = (radiobutton) holder.rgassessment .findviewbyid(r.id.teacher_view_fragment_child_list_adapter_assessment3); holder.assessment4 = (radiobutton) holder.rgassessment .findviewbyid(r.id.teacher_view_fragment_child_list_adapter_assessment4); holder.assessment5 = (radiobutton) holder.rgassessment .findviewbyid(r.id.teacher_view_fragment_child_list_adapter_assessment5); row.settag(holder); } else { holder = (viewholder) row.gettag(); } if (position == 0) { holder.assessment1.setbuttondrawable(android.r.drawable.btn_radio); holder.assessment2.setbuttondrawable(android.r.drawable.btn_radio); holder.assessment3.setbuttondrawable(android.r.drawable.btn_radio); holder.assessment4.setbuttondrawable(android.r.drawable.btn_radio); holder.assessment5.setbuttondrawable(android.r.drawable.btn_radio); holder.assessment1.settext(""); holder.assessment2.settext(""); holder.assessment3.settext(""); holder.assessment4.settext(""); holder.assessment5.settext(""); } else { holder.assessment1.setbuttondrawable(android.r.color.transparent); holder.assessment2.setbuttondrawable(android.r.color.transparent); holder.assessment3.setbuttondrawable(android.r.color.transparent); holder.assessment4.setbuttondrawable(android.r.color.transparent); holder.assessment5.setbuttondrawable(android.r.color.transparent); holder.assessment1.settext("m1"); holder.assessment2.settext("m2"); holder.assessment3.settext("m3"); holder.assessment4.settext("m4"); holder.assessment5.settext("m5"); } holder.ckbselectname.settag(position); holder.rgassessment.settag(position); setcheckedrbn(container.get(position).getmoduleselected()); setcheckedchb(container.get(position).ismoduleactive); holder.ckbselectname.setonclicklistener(new onclicklistener() { @override public void onclick(view v) { selectedposition = (integer) v.gettag(); system.out.println("selectedposition : "+selectedposition); system.out.println("container.get(selectedposition).getismoduleactive() : "+container.get(selectedposition).getismoduleactive()); if(selectedposition==0){ for(int i=0;i<container.size();i++){ if(!container.get(i).getismoduleactive()){ container.get(i).setismoduleactive(true); container.get(i).setmoduleselected("0"); } else { container.get(i).setismoduleactive(false); container.get(i).setmoduleselected("-1"); } } } else { if(!container.get(selectedposition).getismoduleactive()){ container.get(selectedposition).setismoduleactive(true); container.get(selectedposition).setmoduleselected("0"); } else { container.get(selectedposition).setismoduleactive(false); container.get(selectedposition).setmoduleselected("-1"); } } system.out.println("container.get(selectedposition).getismoduleactive() : "+container.get(selectedposition).getismoduleactive()); notifydatasetchanged(); } }); holder.txvchaptername.settext(container.get(position).getchaptername()); holder.rgassessment .setoncheckedchangelistener(new oncheckedchangelistener() { @override public void oncheckedchanged(radiogroup group, int checkedid) { selectedposition = (integer) group.gettag(); view radiobuttonview = group.findviewbyid(checkedid); radiobutton checkedradiobutton = (radiobutton)group.findviewbyid(checkedid); int idx = group.indexofchild(radiobuttonview); if (selectedposition == 0 && checkedradiobutton.ischecked() ) { (int = 0; < container.size(); i++) { if (container.get(i).getismoduleactive() || i==0 ){ container.get(i).setmoduleselected("" + idx); } else if(i!=0){ container.get(i).setmoduleselected("-1"); container.get(i).setismoduleactive(false); } } } else if(selectedposition !=0){ container.get(selectedposition).setismoduleactive( true); container.get(selectedposition).setmoduleselected( "" + idx); } checkrb(); } }); homecoming row; } public void setcheckedrbn(string str) { switch (str) { case "0": holder.assessment1.setchecked(true); break; case "1": holder.assessment2.setchecked(true); break; case "2": holder.assessment3.setchecked(true); break; case "3": holder.assessment4.setchecked(true); break; case "4": holder.assessment5.setchecked(true); break; default: holder.assessment1.setchecked(false); holder.assessment2.setchecked(false); holder.assessment3.setchecked(false); holder.assessment4.setchecked(false); holder.assessment5.setchecked(false); break; } } public void setcheckedchb(boolean isactive) { if (isactive) holder.ckbselectname.setchecked(true); else holder.ckbselectname.setchecked(false); } public void checkrb() { int rbcount=0,chcount=0; string str=""; for(int i=0;i<container.size();i++) { str=container.get(i).getmoduleselected(); if(str!="-1"){ break; } } for(int i=1;i<container.size() && str!="";i++) { if(str.equals(container.get(i).getmoduleselected()) && container.get(i).getismoduleactive()){ rbcount++; str=container.get(i).getmoduleselected(); } if(container.get(i).getismoduleactive()) chcount++; } if(rbcount!=chcount) container.get(0).setmoduleselected("-1"); else container.get(0).setmoduleselected(str); if(rbcount==container.size()) container.get(0).setismoduleactive(true); else container.get(0).setismoduleactive(false); notifydatasetchanged(); } public void checkchb() { int chcount=0; for(int i=0;i<container.size();i++) { if(container.get(i).getismoduleactive()) chcount++; } if(chcount==(container.size()-1)){ container.get(0).setismoduleactive(true); } else container.get(0).setismoduleactive(false); notifydatasetchanged(); } }

android android-listview radio-button radio-group android-radiogroup

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 -