Android 为什么它在onClick方法中使用R.id.buttonX,而不是将视图与现有按钮进行比较?

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

例如,我在活动中使用了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语句更快、可读性更强。

有时我们不需要保留视图的引用。我们只想注册点击事件,比如:
findviewbyd(R.id.button)。setOnClickListener()


我也更喜欢使用switch而不是if-else

switch case比if-else快得多。false。交换机和if之间没有性能差异。编辑:我可能错了,你是对的,布鲁诺:。也就是说,在这种情况下,只有两种情况,差异是可以忽略的