例如,我在Activity中有onClick方法。为什么以这种方式处理是不好的?
@Override
public void onClick(final View v) {
if (v == mBtnGo || v == mBtnBack) {
handleActionClick();
} else if (v == mBtnNext) {
handleNextClick();
}
}
应该使用这个逻辑:
@Override
public void onClick(final View v) {
switch (v.getId()) {
case R.id.btn_go:
case R.id.btn_back:
handleActionClick();
break;
case R.id.btn_next:
handleNextClick();
break;
default:
break;
}
}
这两种方法都可以。
在单个onClick(
(方法中处理多次点击时 第二种方法允许您使用 switch 语句,
这比一连串的 if-else 语句更快、更具可读性。
有时我们不需要保留视图的引用。我们只想注册点击事件,例如:findViewById(R.id.button).setOnClickListener()
而且我也更喜欢使用开关而不是if-else