Android 为什么它在onClick方法中使用R.id.buttonX,而不是将视图与现有按钮进行比较?
例如,我在活动中使用了onClick方法。为什么用这种方式处理是不好的做法Android 为什么它在onClick方法中使用R.id.buttonX,而不是将视图与现有按钮进行比较?,android,Android,例如,我在活动中使用了onClick方法。为什么用这种方式处理是不好的做法 @Override public void onClick(final View v) { if (v == mBtnGo || v == mBtnBack) { handleActionClick(); } else if (v == mBtnNext) { handleNextClick(); } } 应该使用这种逻辑: @Override public vo
@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语句更快、可读性更强。有时我们不需要保留视图的引用。我们只想注册点击事件,比如:
findviewbyd(R.id.button)。setOnClickListener()
我也更喜欢使用switch而不是if-elseswitch case比if-else快得多。false。交换机和if之间没有性能差异。编辑:我可能错了,你是对的,布鲁诺:。也就是说,在这种情况下,只有两种情况,差异是可以忽略的