toggle1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
try
{
String msg ="";
if (isChecked) {
// The toggle is enabled
//msg = "Hello " + String.valueOf(!isChecked);
msg = "1";
} else {
// The toggle is disabled
//msg = "Hello " + String.valueOf(!isChecked);
msg = "1";
}
msg += "\n";
outputStream.write(msg.getBytes());
}
catch (IOException ex) { }
catch (NullPointerException ex) { }
}
});
위의 코드를 고려하십시오. 이제 1 스위치가 있습니다.이 코드 스 니펫으로 충분합니다. 그러나 4 스위치가있는 경우이 코드 스 니펫을 4 번 반복하십시오. 그래서 이것은 중복되었습니다. 각 스위치에 대해 toggl1 -> msg = "1"; toggl2 -> msg = "2"; 그냥 각 장소를 변경합니다.안드로이드 스위치 setOnCheckedChangeListener DRY 원리를 적용하여 객체를 전달하는 메소드
내가 DRY 원칙을 준수 할 수 있도록 내가 setOnCheckedChangeListener에 개체를 전달할 수있는 방법?
원래의 코드를 확장 한 자체 OnCheckedChangListener를 만들고 코드를 공유하면 생성자 – Chol
@Chol로 해당 객체를 전달합니다. 배울 점이 있습니다. 그래, 나는 만들려고 노력했다. 그러나 CompoundButton 클래스에는 Context가 필요합니다. –