Привет, уважаемое сообщество.
Я пытаюсь внедрить средство выбора изображений Pix в проект, но у меня возникает проблема, когда я пытаюсь установить второе изображение во второй кнопке изображения, это мой макет:
введите описание изображения здесь
и это мой код
class MainActivity : AppCompatActivity() {
var options: Options? = null
var returnValue = ArrayList<String>()
val listaimg = ArrayList<String>()
var buttonimg1 : ImageButton? = null
var buttonimg2 : ImageButton? = null
var context : Context? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
buttonimg1 = findViewById(R.id.ev1)
buttonimg2 = findViewById(R.id.ev2)
options = Options.init()
.setRequestCode(100)
.setCount(2)
.setFrontfacing(false)
.setImageQuality(ImageQuality.LOW)
.setPreSelectedUrls(returnValue)
.setScreenOrientation(Options.SCREEN_ORIENTATION_PORTRAIT)
.setPath("/diego/evidencias")
findViewById<View>(R.id.evbutton).setOnClickListener{ view:View? ->
options!!.setPreSelectedUrls(returnValue)
Pix.start(this,options)
}
}
public override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
when (requestCode) {
100 -> {
if (resultCode == Activity.RESULT_OK) {
returnValue = data!!.getStringArrayListExtra(Pix.IMAGE_RESULTS)
setImage(returnValue)
}
}
}
}
fun setImage (strings : ArrayList<String>){
this.listaimg.clear()
this.listaimg.addAll(strings)
val f0 = File(listaimg[1])
val f1 = File(listaimg[0])
val d0 = BitmapDrawable(context?.resources, f0.absolutePath).bitmap
val d1 = BitmapDrawable(context?.resources,f1.absolutePath).bitmap
buttonimg1!!.setImageBitmap(d0)
buttonimg2!!.setImageBitmap(d1)
}
override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<String>, grantResults: IntArray
) {
when (requestCode) {
PermUtil.REQUEST_CODE_ASK_MULTIPLE_PERMISSIONS -> {
// If request is cancelled, the result arrays are empty.
if (grantResults.size > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
Pix.start(this@MainActivity, options)
} else {
Toast.makeText(
this@MainActivity,
"Approve permissions to open Pix ImagePicker",
Toast.LENGTH_LONG
).show()
}
return
}
}
}
}
Когда я только покидаю позицию 0 из списка с соответствующим назначением файла, растрового изображения и кнопки изображения, работает хорошо, очевидно, с одним изображением, но когда я пытаюсь поставить вторую позицию, у меня появляется эта ошибка
E / AndroidRuntime: FATAL EXCEPTION: main Процесс: com. example.piximagebutton, PID: 1604 java .lang.RuntimeException: сбой при доставке результата ResultInfo {who = null, request = 100, result = -1, data = Intent {(with extras)}} в действие {com.example. piximagebutton / com.example.piximagebutton.MainActivity}: java .lang.IndexOutOfBoundsException: индекс: 1, размер: 1 в android .app.ActivityThread.deliverResults (ActivityThread. java: 4932) в android. app.ActivityThread.handl eSendResult (ActivityThread. java: 4975) в android .app.ActivityThread.-wrap20 (неизвестный источник: 0) в android .app.ActivityThread $ H.handleMessage (ActivityThread. java: 1950) в android .os.Handler.dispatchMessage (Обработчик. java: 108) в android .os.Looper.l oop (Looper. java: 166) в android .app.ActivityThread.main ( ActivityThread. java: 7425) в java .lang.reflect.Method.invoke (собственный метод) в com. android .internal.os.Zygote $ MethodAndArgsCaller.run (Zygote. java: 245) в com. android .internal.os.ZygoteInit.main (ZygoteInit. java: 921) Причина: java .lang.IndexOutOfBoundsException: Индекс: 1, размер: 1 при java .util.ArrayList.get (ArrayList. java: 437) в com.example.piximagebutton.MainActivity.setImage (MainActivity.kt: 73) в com.example.piximagebutton.MainActivity.onActivityResult (MainActivity.kt: 61) в android .app. Activity.dispatchActivityResult (Activity. java: 7690) в android .app.ActivityThread.deliverResults (ActivityThread. java: 4928) в android .app.ActivityThread.handleSendResult (ActivityThread. java: 4975) в android .app.ActivityThread.-wrap20 (неизвестный источник: 0) в android .app.ActivityThread $ H.handleMessage (ActivityThread. java: 1950) в android .os. Handler.dispatchMessage (Handler. java: 108) в android .os.Looper.l oop (Looper. java: 166) в android .app.ActivityThread.main (ActivityThread. java : 7425) в java .lang.reflect.Method.invoke (собственный метод) в com. android .internal.os.Zygote $ MethodAndArgsCaller.run (Zygote. java: 245) в com. android .internal.os.ZygoteInit.main (ZygoteInit. java: 921) I / Процесс: отправка сигнала. PID: 1604 SIG: 9
Я не понимаю, почему эта ошибка, кстати, я новичок в этих темах, Если вы можете мне помочь, я буду вечно благодарен
Спасибо сообществу (у)