如何在Kotlin中将图片文件名与字符串进行比较?

时间:2018-11-11 00:16:52

标签: android android-studio kotlin

如何比较图像文件名(设置为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) }
        }

2 个答案:

答案 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)