gpt4 book ai didi

android - 如何设置 "ImageView"为可点击或不可点击

转载 作者:行者123 更新时间:2023-11-29 02:20:07 25 4
gpt4 key购买 nike

我正在制作一个简单的内存游戏。基本上,一些 ImageView 出现,然后用户应该根据顺序单击 ImageView。但是,ImageView 在排序时也可以点击。因此,我希望 ImageView 在排序未完成时不可点击,然后我希望 ImageView 在排序完成后可点击。我该怎么做?

-编辑 1在你的解决方案之后,我在 kotlin 中尝试了 image.setEnable = false 方法,我得到了结果。

此处相关部分 Kotlin

fun orderImages() {
index=0
Collections.shuffle(controlArray)
println(controlArray)
runnable = object : Runnable {
override fun run() {
for (image in imageArray) {
image.visibility = View.INVISIBLE
image.isEnabled = false
}
if (index < controlArray.size) {
imageArray[controlArray[index]].visibility = View.VISIBLE
index++
} else {
handler.removeCallbacks(runnable)
for (image in imageArray) {
image.visibility = View.VISIBLE
image.isEnabled = true

}
}
handler.postDelayed(runnable, 1000)
}
}
handler.post(runnable)
userArray.clear()
}

最佳答案

要以编程方式禁用点击监听器,请使用 image.setEnabled(false);。但是,正如您所描述的,我认为您的排序功能是密集型计算,因此它需要时间,如果时间是几秒钟,它可能会阻塞 UI 线程。因此,您必须在新线程上运行排序功能。假设您的 Activity 中有一个按钮 buttonStartSorting

final Handler handler = new Handler();
buttonStartSorting.setOnClickListener(new View.OnClickListener() {
//disalbe listener for images
for(imv in imageViews){
imv.isEnable = false;
}
//do sort images on new thread
Thread(Runnable {
yourSortImagesMethod(imageViews);
handler.post(Runable{
//enable listener for images
for(imv in imageViews){
imv.isEnable = true;
}
})
}).start()
})

关于android - 如何设置 "ImageView"为可点击或不可点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56770420/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com