java - Android Switch setOnCheckedChangeListener method to pass Object by applying DRY principle -


toggle1.setoncheckedchangelistener(new compoundbutton.oncheckedchangelistener() {          public void oncheckedchanged(compoundbutton buttonview, boolean ischecked) {              try             {                 string msg ="";                 if (ischecked) {                     // toggle enabled                      //msg = "hello " + string.valueof(!ischecked);                     msg = "1";                   } else {                     // toggle disabled                     //msg = "hello " + string.valueof(!ischecked);                     msg = "1";                 }                 msg += "\n";                 outputstream.write(msg.getbytes());              }             catch (ioexception ex) { }             catch (nullpointerexception ex) { }            }     }); 

please consider above code. have 1 switch code snippet enough. however, if have 4 switchs 4 times repeat code snippet. duplicate. here each switch toggl1 ->msg = "1"; toggl2 ->msg = "2"; just change each place.

how can pass object setoncheckedchangelistener can obey dry principle ?

you can use tag of view , retrieve later this

compoundbutton.oncheckedchangelistener listener = new compoundbutton.oncheckedchangelistener() {      public void oncheckedchanged(compoundbutton buttonview, boolean ischecked) {         try {             string msg ="";             if (ischecked) {                 // toggle enabled                  //msg = "hello " + string.valueof(!ischecked);                 msg = buttonview.gettag().tostring()               } else {                 // toggle disabled                 //msg = "hello " + string.valueof(!ischecked);                 msg = buttonview.gettag().tostring()             }             msg += "\n";             outputstream.write(msg.getbytes());          } catch (ioexception ex) {          }         catch (nullpointerexception ex) {          }     } };  toggle1.settag("1"); toggle2.settag("2"); toggle3.settag("3");  toggle1.setoncheckedchangelistener(listener); toggle2.setoncheckedchangelistener(listener); toggle3.setoncheckedchangelistener(listener); 

the buttonview passed oncheckchanged switch toggled, 1 of toggle variables


Comments