Codist
Codist

Reputation: 769

How to add uri to an ArrayList in Kotlin?

I wanted to get the URI of all images in an ArrayList<> form. I am not getting the result I wanted. Toast shows null.

The code Toast.makeText( this@AddProductActivity,mSelectedImageFileUri.toString(),Toast.LENGTH_SHORT).show() shows some data where as Toast.makeText( this@AddProductActivity,mSelectedImageFileUriList.toString(),Toast.LENGTH_SHORT).show() shows null.

This is what I have done. Can someone help me find out my mistake?

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()
                }
            }
}
}

Upvotes: 1

Views: 836

Answers (1)

androidLearner
androidLearner

Reputation: 1702

You did not initiate ArrayList.

in java it will be like

    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();

Upvotes: 1

Related Questions