【发布时间】:2021-12-03 06:26:11
【问题描述】:
我有一个活动,您可以在单击 3 个不同按钮中的一个后上传 3 张不同的图片。您只能一张一张选择图像,而不是一次选择 3 张。每个“按钮”实际上是一个clickableImageView,当点击它时应该提示用户选择一张图片,然后他们选择的图片应该填充他们点击的ImageView。我知道如何在每个活动中只使用 1 个 imageView,所以我目前陷入困境。
我的思考过程如下:
-
有 3 个不同的
Boolean变量链接到 3 个不同的clickableImageViews。private var clickedView1: Boolean = false //same for the other views -
当点击 1 个视图 (
OnClickListeners) 时,切换与其链接的Boolean,使其为真。upload1.setOnClickListener { clickedView1 = true uploadPicture() } //same for the other views -
如果布尔值更新为 true,则填充相应的 imageView(在 onActivityResult 中完成)。
if (clickedView1) { if (requestCode == 0 && resultCode == Activity.RESULT_OK && data != null) { selectedPhotoUri1 = data.data ImagesList?.plus(selectedPhotoUri1) val bitmap = MediaStore.Images.Media.getBitmap(contentResolver, selectedPhotoUri1) upload1.setImageBitmap(bitmap) } } else if { //same thing for the other views }
在我看来这是有道理的,但我知道这是错误的,当我对其进行编程并启动活动时,我必须按照我填充图像视图的顺序进行战略性 RE(即它仅适用于最后一个 ImageView,去第一个)。任何其他命令都不起作用,并且将始终填充第一个 ImageView,无论单击哪个。
有没有一种高效准确的方法来做人口+OnClickListeners?
【问题讨论】:
-
所以问题是你的图片总是上传到第一个ImageView,不管点击哪个?
-
是的,这就是@alexal1 的问题,除非我从最后一个到第一个而不是按任何其他顺序选择