图像路径无法存储到对象 class
Image path failed to store into Object class
在片段 A 中,我试图从服务器获取图像对象并将它们存储到 totalListImage
。此步骤工作正常。
var totalListImage: MutableList<Image> = mutableListOf()
fun getWorkRequestImage() {
GlobalScope.launch(Dispatchers.Main) {
val request = WebApi.getImages(activity, obj?.id!!)
request?.images?.let {
for (i in it!!.iterator()) {
totalListImage?.add(i)
}
}
mImageListAdapter.notifyDataSetChanged()
}
}
在同一个片段中,我允许用户拍摄图像并将拍摄的图像存储到 totalListImage
。
这里是ActivityResult
var path = data?.getExtras()?.getString("bitmap")
if (path != null) {
Log.d(TAG,path)
val images = Image()
images.image?.url = path
totalListImage.add(images)
display()
}
最后在显示方法中,我想显示所有url。但是我在最后捕获的图像上得到空指针。
fun display() {
for (i in totalListImage) {
Log.d(TAG, i.image?.url)
}
}
如果我删除捕获的图像,我会得到这个
D/AFragment: https://xxx/image/633/1562424667277.png
D/AFragment: https://xxx/image/637/1562426838223.png
截图的路径确认不为空,我显示的时候看到了这个
D/AFragment: /data/user/0/xxxk/cache/images/1562437144046.png
为什么我无法将最后一张图片的路径保存到 images.image?.url
中?
图片
class Images : Serializable {
@PrimaryKey
var id = ""
@Ignore
var image : Image?=null
}
图片
@Parcelize
class Image(
@ColumnInfo(name = "image")
var url: String ? =null
) : Serializable,Parcelable
参考这段代码:
val images = Image()
images.image?.url = path
totalListImage.add(images)
并假设您的意思是 val images = Images()
(否则此代码段甚至无法编译),
那么问题是 images.image
是 null
.
这是因为 Images
class 的定义,其中有 var image : Image?=null
。
为您解决:
- 更改 class 定义以具有 not-null 默认值,例如:
var image : Image? = Image()
- 或者在上面的代码片段中手动初始化它,例如:
val images = Images()
images.image = Image()
images.image?.url = path
totalListImage.add(images)
在片段 A 中,我试图从服务器获取图像对象并将它们存储到 totalListImage
。此步骤工作正常。
var totalListImage: MutableList<Image> = mutableListOf()
fun getWorkRequestImage() {
GlobalScope.launch(Dispatchers.Main) {
val request = WebApi.getImages(activity, obj?.id!!)
request?.images?.let {
for (i in it!!.iterator()) {
totalListImage?.add(i)
}
}
mImageListAdapter.notifyDataSetChanged()
}
}
在同一个片段中,我允许用户拍摄图像并将拍摄的图像存储到 totalListImage
。
这里是ActivityResult
var path = data?.getExtras()?.getString("bitmap")
if (path != null) {
Log.d(TAG,path)
val images = Image()
images.image?.url = path
totalListImage.add(images)
display()
}
最后在显示方法中,我想显示所有url。但是我在最后捕获的图像上得到空指针。
fun display() {
for (i in totalListImage) {
Log.d(TAG, i.image?.url)
}
}
如果我删除捕获的图像,我会得到这个
D/AFragment: https://xxx/image/633/1562424667277.png
D/AFragment: https://xxx/image/637/1562426838223.png
截图的路径确认不为空,我显示的时候看到了这个
D/AFragment: /data/user/0/xxxk/cache/images/1562437144046.png
为什么我无法将最后一张图片的路径保存到 images.image?.url
中?
图片
class Images : Serializable {
@PrimaryKey
var id = ""
@Ignore
var image : Image?=null
}
图片
@Parcelize
class Image(
@ColumnInfo(name = "image")
var url: String ? =null
) : Serializable,Parcelable
参考这段代码:
val images = Image()
images.image?.url = path
totalListImage.add(images)
并假设您的意思是 val images = Images()
(否则此代码段甚至无法编译),
那么问题是 images.image
是 null
.
这是因为 Images
class 的定义,其中有 var image : Image?=null
。
为您解决:
- 更改 class 定义以具有 not-null 默认值,例如:
var image : Image? = Image()
- 或者在上面的代码片段中手动初始化它,例如:
val images = Images()
images.image = Image()
images.image?.url = path
totalListImage.add(images)