我的应用中包含以下代码:
if (mEnterPhoneNumberButton.getText().equals(getString(R.string.enter_phone_number_default_text))) {
showEnterPhoneNumberAlertDialog();
}
此代码会为我测试过的所有设备(除了运行Android 5.0的Huawei P8 Lite)产生预期的结果。对于这一设备,我需要添加toString()以将CharSequence转换为String。否则,当比较结果为true时,比较将返回false:
if (mEnterPhoneNumberButton.getText().toString().equals(getString(R.string.enter_phone_number_default_text))) {
showEnterPhoneNumberAlertDialog();
}
以上代码适用于所有设备。我知道这是正确的处理方式,因为CharSequence不一定是String。但是为什么基于设备的差异呢?这是华为进行的一些自定义/优化吗?