java - Keeping Only One radio Button Checked In an TableRow Inflater? -


i have been trying keep 1 of radio buttons checked every time user able select multiple radio buttons.

how can keep single or current selected radio button checked?

i have tablelayout has tablerow xml layout being inflatd code. also, onclicklistener applied on radiobutton fetches tag current selected radio button.

can please me out this?

for ref. table row's xml layout:

<tablerow xmlns:android="http://schemas.android.com/apk/res/android"                          android:id="@+id/tbldynstorerow"                         android:layout_margin="0.0dp"                         android:layout_width="match_parent" >                          <textview                             android:id="@+id/tvstorecount"                             android:textsize="10sp"                             android:layout_width="wrap_content"                             android:layout_height="12dp"                             android:singleline="true"                             android:scrollhorizontally="true" />                          <radiobutton                             android:id="@+id/rb1storename"                             android:textsize="10sp"                             android:layout_width="wrap_content"                             android:layout_height="31dp"                             android:singleline="true"                             android:scrollhorizontally="true" />                     </tablerow> 

oncreate() method:

protected void oncreate(bundle savedinstancestate) {     super.oncreate(savedinstancestate);     setcontentview(r.layout.activity_store_selection);      tablelayout tl = (tablelayout) findviewbyid(r.id.mainstoretable);     //radiobutton rb1;      textview tvdate = (textview) findviewbyid(r.id.textview1_date2);      intent getstorei = getintent();     // usrgpslock = i.getstringextra("currusrlat") + "," +     // i.getstringextra("currusrlon");     uuid = getstorei.getstringextra("imei").trim();      userdate = getstorei.getstringextra("userdate");     tvdate.settext(userdate);      /*telephonymanager tmanager = (telephonymanager) getsystemservice(context.telephony_service);     uuid = tmanager.getdeviceid();*/      button btnstart = (button)findviewbyid(r.id.startques);      dbengine.open();      storelist = dbengine.fetchstorelist();      dbengine.close();      /*final string[] storecode = new string[storelist.length];     final string[] storename = new string[storelist.length];*/      storecode = new string[storelist.length];     storename = new string[storelist.length];      (int splitval = 0; splitval <= (storelist.length - 1); splitval++) {         stringtokenizer tokens = new stringtokenizer(string.valueof(storelist[splitval]), "_");          storecode[splitval] = tokens.nexttoken().trim();         storename[splitval] = tokens.nexttoken().trim();      }      system.out.println(storelist);      // tablelayout     /*tablelayout tl = (tablelayout) findviewbyid(r.id.maintable);*/      layoutinflater inflater = getlayoutinflater();      // go through each item in array      (int current = 0; current <= (storelist.length - 1); current++) {           tablerow storerow = (tablerow)inflater.inflate(r.layout.store_table_row, tl, false);          textview tv1 = (textview)storerow.findviewbyid(r.id.tvstorecount);         final radiobutton rb1 = (radiobutton)storerow.findviewbyid(r.id.rb1storename);          //tv1.settag(current);          tv1.settext((""+(current+1)).trim());          //tv1.setid();          rb1.settag(storecode[current]);         rb1.settext(storename[current]);          tl.addview(storerow);          /*// create tablerow , give id         tr = new tablerow(this);          tr.setid(200 + current);         tr.settag(storecode[current]);         tr.setlayoutparams(new layoutparams(layoutparams.wrap_content,                 layoutparams.wrap_content));         tr.setclickable(true);          rb1 = new radiobutton(this);          rb1.setid(current);         rb1.settag(storecode[current]);         rb1.settext(storename[current]);         rb1.settextcolor(color.black);         rb1.setlayoutparams(new layoutparams(layoutparams.wrap_content,                 layoutparams.wrap_content));         tr.addview(rb1);          checkbox cb1 = new checkbox(this);         cb1.setid(500 + current);         // cb1.settext(provinces[current]);         cb1.settextcolor(color.black);         cb1.setlayoutparams(new layoutparams(layoutparams.wrap_content,                 layoutparams.wrap_content));         tr.addview(cb1);            * checkbox cb2 = new checkbox(this); cb2.setid(300+current);          * //cb1.settext(provinces[current]); cb2.settextcolor(color.black);          * cb2.setlayoutparams(new layoutparams( layoutparams.wrap_content,          * layoutparams.wrap_content)); tr.addview(cb2);           // add tablerow tablelayout         tl.addview(tr, new tablelayout.layoutparams(layoutparams.wrap_content, layoutparams.wrap_content));*/          rb1.setonclicklistener(new view.onclicklistener() {              @override             public void onclick(view arg0) {                 // todo auto-generated method stub                  system.out.println("inside-onclick");                 //system.out.println(arg0.getid());                 system.out.println(arg0.gettag());                 selstoreid = arg0.gettag().tostring();                  if(prevsel == 0) {                     prevselstoreid = selstoreid;                     previd = arg0.getid();                     prevsel = 1;                 }                 else{                  }                 /*rb1.refreshdrawablestate();*/                  if(prevselstoreid.equals(arg0.gettag().tostring())){                     /*int rbid;                     rbid = rb1.getid();                     system.out.println("rb id: " + rbid);*/                  }                 else{                     int rbid;                     rbid = arg0.getid();                      //rb1.refreshdrawablestate();                     //rb1.clearfocus();                     //rb1.findviewbyid(rbid).isselected();                      rb1.findviewbyid(previd).clearfocus();                     rb1.findviewbyid(previd).invalidate();                     rb1.findviewbyid(previd).refreshdrawablestate();                      system.out.println("previd: " + previd);                     system.out.println("rbid: " + rbid);                      rb1.setchecked(false);                     //rb1.findviewwithtag(prevselstoreid).invalidate();                      prevsel = 0;                     prevselstoreid = selstoreid;                     previd = rbid;                      rb1.findviewbyid(rbid).isselected();                  }              }         });      }      btnstart.setonclicklistener(new view.onclicklistener() {          @override         public void onclick(view arg0) {              intent nxtp3 = new intent(storeselection.this, lastvisitdetails.class);             nxtp3.putextra("storeid", selstoreid);             nxtp3.putextra("imei", uuid);             nxtp3.putextra("date", userdate);             startactivity(nxtp3);           }     });  } 

to prevent multiple checking of radiobutton must within same radiogroup.

either define radiogroup in xml (but see trying difficult)

or create in java: radiogroup rg = new radiogroup(this);

edit edit edit

try this...hope works

radiogroup rg = new radiogroup(this); radiobutton[] rb = new radiobutton[storelist.length]; (int current = 0; current <= (storelist.length - 1); current++) {       tablerow storerow = (tablerow)inflater.inflate(r.layout.store_table_row, tl, false);      textview tv1 = (textview)storerow.findviewbyid(r.id.tvstorecount);     rb[current]  = (radiobutton)storerow.findviewbyid(r.id.rb1storename);     rg.addview(rb[current]);     /*other suff... 

Comments

Popular posts from this blog

ruby - Trying to change last to "x"s to 23 -

jquery - Clone last and append item to closest class -

c - Unrecognised emulation mode: elf_i386 on MinGW32 -