如何将 uri 添加到 Kotlin 中的 ArrayList 中?



我想以ArrayList<>的形式获取所有图像的URI。我没有得到我想要的结果。Toast显示null.

代码Toast.makeText( this@AddProductActivity,mSelectedImageFileUri.toString(),Toast.LENGTH_SHORT).show()显示一些数据,其中Toast.makeText( this@AddProductActivity,mSelectedImageFileUriList.toString(),Toast.LENGTH_SHORT).show()显示null

这就是我所做的。有人可以帮助我找出我的错误吗?

class AddProductActivity : BaseActivity(), View.OnClickListener {
private var mSelectedImageFileUri: Uri? = null
private var mSelectedImageFileUriList: ArrayList<Uri?>? = null

override fun onClick(v: View?) {
if (v != null) {
when (v.id) {
R.id.iv_add_update_product -> {
imageNumber1=1
if (ContextCompat.checkSelfPermission(
this,
Manifest.permission.READ_EXTERNAL_STORAGE
)
== PackageManager.PERMISSION_GRANTED
) {
Constants.showImageChooser(this@AddProductActivity)
} else {

ActivityCompat.requestPermissions(
this,
arrayOf(Manifest.permission.READ_EXTERNAL_STORAGE),
Constants.READ_STORAGE_PERMISSION_CODE
)
}
}
R.id.iv_add_update_product2 -> {
if(iv_product_image.drawable!=null){
imageNumber2=1
if (ContextCompat.checkSelfPermission(
this,
Manifest.permission.READ_EXTERNAL_STORAGE
)
== PackageManager.PERMISSION_GRANTED
) {
Constants.showImageChooser(this@AddProductActivity)
} else {

ActivityCompat.requestPermissions(
this,
arrayOf(Manifest.permission.READ_EXTERNAL_STORAGE),
Constants.READ_STORAGE_PERMISSION_CODE
)
}
}else{
Toast.makeText(this@AddProductActivity,"Please add image 1",Toast.LENGTH_SHORT).show()
}
}
}
}

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (resultCode == Activity.RESULT_OK
&& requestCode == Constants.PICK_IMAGE_REQUEST_CODE
&& data!!.data != null
) {
if (imageNumber1==1){
imageNumber1=0

iv_add_update_product.setImageDrawable(
ContextCompat.getDrawable(
this@AddProductActivity,
R.drawable.ic_vector_edit
)
)
mSelectedImageFileUri=data.data!!
Log.i("URI_1 is ",mSelectedImageFileUri.toString())
Toast.makeText( this@AddProductActivity,mSelectedImageFileUri.toString(),Toast.LENGTH_SHORT).show()
mSelectedImageFileUriList?.add(data.data!!)
Toast.makeText( this@AddProductActivity,mSelectedImageFileUriList.toString(),Toast.LENGTH_SHORT).show()
try {

GlideLoader(this@AddProductActivity).loadProductPicture(
mSelectedImageFileUri!!,
iv_product_image
)
} catch (e: IOException) {
e.printStackTrace()
}
}
if (imageNumber2==1){
imageNumber2=0

iv_add_update_product2.setImageDrawable(
ContextCompat.getDrawable(
this@AddProductActivity,
R.drawable.ic_vector_edit
)
)
mSelectedImageFileUri=data.data!!
Log.i("URI_2 is ",mSelectedImageFileUri.toString())
Toast.makeText( this@AddProductActivity,mSelectedImageFileUri.toString(),Toast.LENGTH_SHORT).show()
mSelectedImageFileUriList?.add(data.data!!)
Toast.makeText( this@AddProductActivity,mSelectedImageFileUriList.toString(),Toast.LENGTH_SHORT).show()
try {

GlideLoader(this@AddProductActivity).loadProductPicture(
mSelectedImageFileUri!!,
iv_product_image2
)
} catch (e: IOException) {
e.printStackTrace()
}
}
}
}

您没有启动 ArrayList。

在Java中,它会像

List<Uri> mSelectedImageFileUriList=new ArrayList();
in Kotlin
val mSelectedImageFileUriList= ArrayList<Uri>()

mSelectedImageFileUriList.add(yourUri);

Toast.makeText( this@AddProductActivity,String.valueOf(mSelectedImageFileUriList.get(0)),Toast.LENGTH_SHORT).show();

最新更新