【发布时间】:2016-07-21 15:11:59
【问题描述】:
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 Switch 这个代码 sn-p 已经足够好了。但是,如果我有 4 个开关,那么 4 次重复此代码 sn-p。所以这是重复的。 这里对于每个开关 toggl1 ->msg = "1";对于toggl2->msg =“2”; 每个地方都这样改变。
如何将对象传递给 setOnCheckedChangeListener 以便遵守 DRY 原则?
【问题讨论】:
-
创建自己的 OnCheckedChangListener(扩展原来的)并使用构造函数传递对象
-
@Chol 如果你分享你的代码,我会从中学习。是的,我试图创造。但是 CompoundButton 类需要 Context。
标签: java android design-patterns dry