Как сравнить имя файла изображения со строкой в ​​Kotlin? - PullRequest
0 голосов
/ 11 ноября 2018

Как мне сравнить имя файла изображения (которое установлено как мой ресурс изображения ImageView) со строкой?

Я хочу сравнить используемый в настоящее время ресурс изображения с определенной строкой и, если он совпадает, изменить его на другое изображение (нажав кнопку). Я хочу точно определить, какое изображение должно отображаться следующим (в зависимости от того, какая кнопка нажата и какое изображение отображается в данный момент), и я хочу сделать это много раз (я знаю, как переключать изображения с помощью ImageSwitcher или как менять изображение с помощью кнопки нажмите, но этого недостаточно).

Edit: Пока что я сделал что-то подобное. Я хотел получить текущее описание контента ImageView, а затем сравнить его. Но, конечно, это не работает, потому что описывает содержимое ImageView, а не само изображение. Но это показывает идею, что я хочу сделать.

    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 голосов
/ 11 ноября 2018

Вы можете сделать

 String1 = "nameOne"; 
 String2 = "nameTwo";

и с помощью оператора in

String2 in String1  

Или вы можете использовать

"nameOne".contains("nameTwo", ignoreCase = true)
0 голосов
/ 11 ноября 2018

Способ (или хитрость) для решения этой проблемы заключается в сохранении имени отрисовки в теге 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) }
}

если вы не хотите жестко кодировать идентификатор, используйте это:

imageView.setImageResource(R.drawable.one)
imageView.tag = resources.getResourceEntryName(R.drawable.one)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...