报错‘运算符&&不能应用于int、int’,Android头像更换功能求助
报错原因与解决方法:operator '&&' cannot be applied to 'int', 'int'
错误根源
你在if条件判断里误用了赋值运算符=,而非用于比较的相等运算符==:
requestCode = 1是把数值1赋值给requestCode,这个表达式的返回值是int类型的1;同理resultCode = RESULT_OK也是赋值操作,返回int类型的RESULT_OK。&&逻辑运算符要求两侧必须是布尔值(true/false),但这里两侧都是int类型,因此编译器抛出类型不匹配的报错。
修正后的代码
@Override protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { super.onActivityResult(requestCode, resultCode, data); // 将赋值运算符=替换为相等比较运算符== if (requestCode == 1 && resultCode == RESULT_OK && data != null){ imagePath = data.getData(); getImageinImageView(); } }
额外优化建议
- 避免直接使用魔法数字(比如代码里的
1),建议定义常量替代,示例:
后续判断时用private static final int REQUEST_CODE_SELECT_AVATAR = 1;requestCode == REQUEST_CODE_SELECT_AVATAR,代码可读性与可维护性更强。 - 若你使用AndroidX或较新版本的Android SDK,推荐使用
registerForActivityResult替代onActivityResult,这是官方主推的新API,生命周期感知更安全。
内容的提问来源于stack exchange,提问作者n00b
相关产品推荐
相关产品推荐

