如何比较图像文件名(设置为ImageView图像资源)和字符串?
我想将当前使用的图像资源与定义的字符串进行比较,如果匹配,则将其更改为其他图像(通过单击按钮)。 我想精确定义下一个应该显示的图像(取决于单击了什么按钮以及当前显示的图像),并且我想多次(我知道如何使用ImageSwitcher切换图像或如何使用按钮更改图像)点击,但这还不够)。
编辑: 到目前为止,我做了这样的事情。我想获取当前的ImageView内容描述,然后进行比较。但是,由于它描述的是ImageView的内容,而不是Image本身,因此它当然不起作用。但这说明了我想要做什么。
val imageView = findViewById(R.id.display) as ImageView
imageView.setImageResource(R.drawable.one)
val imageName = imageView.getContentDescription()
val buttonYes : Button = findViewById(R.id.yesButton)
val buttonNo : Button = findViewById(R.id.noButton)
when {
(imageName.equals(one))-> buttonYes.setOnClickListener { imageView.setImageResource(two) }
(imageName.equals(one))-> buttonNo.setOnClickListener { imageView.setImageResource(three) }
(imageName.equals(two))-> buttonYes.setOnClickListener { imageView.setImageResource(five) }
}
答案 0 :(得分:1)
解决此问题的一种方法(或技巧)是将可绘制的名称存储在imageview的标签中:
imageView.setImageResource(R.drawable.one)
imageView.tag = "one"
然后比较标记:
when (imageView.tag.toString()) {
"one" -> buttonYes.setOnClickListener { imageView.setImageResource(two) }
"two" -> buttonYes.setOnClickListener { imageView.setImageResource(five) }
}
如果您不想对ID进行硬编码,请使用以下代码:
imageView.setImageResource(R.drawable.one)
imageView.tag = resources.getResourceEntryName(R.drawable.one)
答案 1 :(得分:0)
你可以
String1 = "nameOne";
String2 = "nameTwo";
并使用in
运算符
String2 in String1
或者您可以使用
"nameOne".contains("nameTwo", ignoreCase = true)