Reputation: 769
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
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