Android Studio中Bitmap相关代码报Cannot resolve putExtra错误如何解决
问题原因
你混淆了Intent的读写数据API:
putExtra()是向Intent中写入数据的方法,没有可用于链式调用get()方法的返回值,自然会触发方法找不到的报错- 从回传Intent中读取附加数据需要调用
getExtras()方法获取存储数据的Bundle对象,再从Bundle中取出对应键的Bitmap值
修正后代码
@Override protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { super.onActivityResult(requestCode, resultCode, data); // 先做有效性判断,避免空指针崩溃 if (requestCode == 100 && resultCode == RESULT_OK && data != null) { Bundle extras = data.getExtras(); if (extras != null) { Bitmap bitmap = (Bitmap) extras.get("BitmapImage"); // 高版本安卓也可以用更规范的类型安全读取方式 // Bitmap bitmap = Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU ? // extras.getParcelable("BitmapImage", Bitmap.class) : // (Bitmap) extras.getParcelable("BitmapImage"); if (bitmap != null) { PsId.setImageBitmap(bitmap); } } } }
补充注意点
如果传输的Bitmap体积较大,不建议直接通过Intent传值,更推荐把Bitmap存到本地缓存,仅传输路径字符串降低跨页面传输开销,避免出现事务过大的异常。
内容的提问来源于stack exchange,提问作者Shainnah Jane
相关产品推荐
相关产品推荐

