首页 > 解决方案 > 在android中添加两个MutableList

问题描述

我想知道为什么 totalList 会显示 null。我有 2 个可变列表

var totalList  : MutableList<String>?=null
var listOfImagesPath: MutableList<String>? = null

listOfImagesPath用于从手机中检索所有图像。我想添加listOfImagesPathtotalList

listOfImagesPath = RetriveCapturedImagePath()
totalList?.add(listOfImagesPath.toString())

我使用下面的代码检查它们的大小

longToast("list" +listOfImagesPath?.size.toString())
longToast("total "+totalList?.size.toString())

输出

5
null

为什么我会得到 null ?

编辑

我想要实现的是从图库中选择的捕获图像和图像显示到gridView中。

相机捕捉

 listOfImagesPath?.clear()
 listOfImagesPath = RetriveCapturedImagePath()
 totalList?.addAll(listOfImagesPath!!)
 grid.setAdapter(ImageListAdapter(this, totalList))

从图库中选择图像

   val bitmap = MediaStore.Images.Media.getBitmap(getActivity()?.getContentResolver(), uri);
    val bytes = ByteArrayOutputStream();
    bitmap?.compress(Bitmap.CompressFormat.JPEG, 90, bytes)
    val path = getRealPathFromURI(uri)
    listOfImagesPath = RetriveCapturedImagePath()
      if(listOfImagesPath?.size!=0){
         totalList.addAll(listOfImagesPath!!)
     }
      totalList.add(path)
      grid.setAdapter(ImageListAdapter(this, totalList))

现在的问题是当我捕获一张图像时,它工作正常。但是当我第二次拍摄图像时,它会显示 3 张图像(第 1、第 1 和第 2)。似乎totalList添加了两次。

标签: javaandroidlistkotlin

解决方案


您必须首先像这样初始化您的列表

var totalList MutableList<String> = mutableListOf()

然后正常添加新值

totalList.add(listOfImagesPath.toString())

推荐阅读