Android 如何在一种方法中使用多个侦听器?(安卓)
我如何将以下内容放到一个方法中。因此,我可以使用一个侦听器来检查单击了哪个复选框,而不是使用两个侦听器。。谢谢Android 如何在一种方法中使用多个侦听器?(安卓),android,Android,我如何将以下内容放到一个方法中。因此,我可以使用一个侦听器来检查单击了哪个复选框,而不是使用两个侦听器。。谢谢 public void onClick(View view) { switch (view.getId()) { case R.id.safe: if (((CheckBox) view).isChecked()) { ((CheckBox) view).setButtonDrawable(R.drawable.tick);
public void onClick(View view) {
switch (view.getId()) {
case R.id.safe:
if (((CheckBox) view).isChecked()) {
((CheckBox) view).setButtonDrawable(R.drawable.tick);
} else {
((CheckBox) view).setButtonDrawable(R.drawable.black);
}
break;
}
}
}在当前类中实现setOnClickListener 及
您可以实现
View.OnClickListener
,然后您可以有一个方法
public class NameClass extends Activity implements View.OnClickListener {
public void onClick(View view) {
switch(view.getId()) {
case R.id.someWidget:
// to do
break;
case R.id.anotherWidget:
// to do
break;
}
}
}
注意:还有一个建议,请在检查更改侦听器时尝试查看
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
switch (buttonView.getId()) {
case R.id.someButton:
if (isChecked) {
// some work
}
else {
// some another work
}
break;
}
}
您可以在侦听器中检查ID:
private void setListeners() {
final View muf = findViewById(R.id.muf);
final View crewArea = findViewById(R.id.crewArea);
OnclickListener ocl = new OnClickListener() {
@OVerride
public void onClick(View view) {
Checkbox ck = null;
switch(view.getId()) {
case R.id.muf: ck = muf; break;
case R.id.crewArea: ck = crewArea; break;
}
if(ck == null)
return;
if (ck.isChecked()) {
ck.setButtonDrawable(R.drawable.tick);
} else {
ck.setButtonDrawable(R.drawable.black);
}
}
};
muf.setOnClickListener(ocl);
crewArea.setOnClickListener(ocl);
}
@AleksG谢谢,在正常情况下,我会建议他使用OnCheckedChangeListener
,但他使用了OnClickListener
,所以我肯定添加了这两种方法,也许第二种方法对其他人有用。@hawaii.5-0:我使用了你的代码,但现在“勾号”不会出现:((代码更新)。您应该使用onCheckedChangeListener man,这通常是一种常见的方法。
private void setListeners() {
final View muf = findViewById(R.id.muf);
final View crewArea = findViewById(R.id.crewArea);
OnclickListener ocl = new OnClickListener() {
@OVerride
public void onClick(View view) {
Checkbox ck = null;
switch(view.getId()) {
case R.id.muf: ck = muf; break;
case R.id.crewArea: ck = crewArea; break;
}
if(ck == null)
return;
if (ck.isChecked()) {
ck.setButtonDrawable(R.drawable.tick);
} else {
ck.setButtonDrawable(R.drawable.black);
}
}
};
muf.setOnClickListener(ocl);
crewArea.setOnClickListener(ocl);
}