Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 图像路径无法存储到对象类中_Android_Kotlin_Camera_Mutablelist - Fatal编程技术网

Android 图像路径无法存储到对象类中

Android 图像路径无法存储到对象类中,android,kotlin,camera,mutablelist,Android,Kotlin,Camera,Mutablelist,在片段A中,我试图从服务器获取图像对象,并将它们存储到totalistimage中。这个步骤很好 var totalListImage: MutableList<Image> = mutableListOf() fun getWorkRequestImage() { GlobalScope.launch(Dispatchers.Main) { val request = WebApi.getImages(activity, obj?.id!

在片段A中,我试图从服务器获取图像对象,并将它们存储到
totalistimage
中。这个步骤很好

 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()
        }
    }
最后在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
类的定义,其中有
var-image:image?=null

要解决您的问题,请执行以下操作之一:

  • 将类定义更改为具有NOTNULL默认值,如:
  • 或者在上面的代码段中手动初始化它,如:

Image
类的外观如何?可能是
图像。图像
为空。请同时发布错误1的日志。如果您正在使用外部存储,您是否也可以添加清单权限?2.val images=Image()我相信它现在是常量如果图像url也是常量,那么您将无法更改它,请尝试将其设置为var,如果您当然可以在
images.Image?之前和之后记录此图像url。url=path
@gpunto images.Image为空。如何修复?@hossameldenonsy images.image为空。在将urlpath放入其中之前,需要对其进行初始化,如下所示
val images=images(),如下图-->images.image=image()
val images = Image()
images.image?.url = path
totalListImage.add(images)
var image : Image? = Image()
val images = Images()
images.image = Image()
images.image?.url = path
totalListImage.add(images)