How to compare image file name with string in Kotlin?









up vote
1
down vote

favorite












How do I compare image file name (which is set as my ImageView image resource) with a string?



I want to compare currently used image resource with defined string and if it matches then change it to a different image (by clicking a button).
I want to precisely define what image should be displayed next (depending on what button is clicked and which image is currently shown) and I want to do it many times (I know how to switch images with ImageSwitcher or how to change image with a button click, but it's not enough).



Edit:
So far I did something like this. I wanted to get current ImageView content description and then compare it. Bu of course it's not working because it describes the content of ImageView, not the Image itself. But it shows the idea what I want to do.



 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)










share|improve this question



















  • 1




    ciao and welcome to StackOverflow! can you please post your attempts so far in order to be better helped to solve your question? thanks!
    – Antonino
    Nov 11 at 0:44














up vote
1
down vote

favorite












How do I compare image file name (which is set as my ImageView image resource) with a string?



I want to compare currently used image resource with defined string and if it matches then change it to a different image (by clicking a button).
I want to precisely define what image should be displayed next (depending on what button is clicked and which image is currently shown) and I want to do it many times (I know how to switch images with ImageSwitcher or how to change image with a button click, but it's not enough).



Edit:
So far I did something like this. I wanted to get current ImageView content description and then compare it. Bu of course it's not working because it describes the content of ImageView, not the Image itself. But it shows the idea what I want to do.



 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)










share|improve this question



















  • 1




    ciao and welcome to StackOverflow! can you please post your attempts so far in order to be better helped to solve your question? thanks!
    – Antonino
    Nov 11 at 0:44












up vote
1
down vote

favorite









up vote
1
down vote

favorite











How do I compare image file name (which is set as my ImageView image resource) with a string?



I want to compare currently used image resource with defined string and if it matches then change it to a different image (by clicking a button).
I want to precisely define what image should be displayed next (depending on what button is clicked and which image is currently shown) and I want to do it many times (I know how to switch images with ImageSwitcher or how to change image with a button click, but it's not enough).



Edit:
So far I did something like this. I wanted to get current ImageView content description and then compare it. Bu of course it's not working because it describes the content of ImageView, not the Image itself. But it shows the idea what I want to do.



 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)










share|improve this question















How do I compare image file name (which is set as my ImageView image resource) with a string?



I want to compare currently used image resource with defined string and if it matches then change it to a different image (by clicking a button).
I want to precisely define what image should be displayed next (depending on what button is clicked and which image is currently shown) and I want to do it many times (I know how to switch images with ImageSwitcher or how to change image with a button click, but it's not enough).



Edit:
So far I did something like this. I wanted to get current ImageView content description and then compare it. Bu of course it's not working because it describes the content of ImageView, not the Image itself. But it shows the idea what I want to do.



 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)







android android-studio kotlin






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 11 at 9:05

























asked Nov 11 at 0:16









Klops

62




62







  • 1




    ciao and welcome to StackOverflow! can you please post your attempts so far in order to be better helped to solve your question? thanks!
    – Antonino
    Nov 11 at 0:44












  • 1




    ciao and welcome to StackOverflow! can you please post your attempts so far in order to be better helped to solve your question? thanks!
    – Antonino
    Nov 11 at 0:44







1




1




ciao and welcome to StackOverflow! can you please post your attempts so far in order to be better helped to solve your question? thanks!
– Antonino
Nov 11 at 0:44




ciao and welcome to StackOverflow! can you please post your attempts so far in order to be better helped to solve your question? thanks!
– Antonino
Nov 11 at 0:44












2 Answers
2






active

oldest

votes

















up vote
1
down vote













A way (or trick) to solve this is to store the name of the drawable in the imageview's tag:



imageView.setImageResource(R.drawable.one)
imageView.tag = "one"


and then compare the tag:



when (imageView.tag.toString()) 
"one" -> buttonYes.setOnClickListener imageView.setImageResource(two)
"two" -> buttonYes.setOnClickListener imageView.setImageResource(five)



if you don't want to hardcode the id then use this:



imageView.setImageResource(R.drawable.one)
imageView.tag = resources.getResourceEntryName(R.drawable.one)





share|improve this answer






















  • thank you! that was very heplful! I used your idea and made some other changes to my code (like getting "setOnClickListner) before when) and it's working just like I wanted it to!
    – Klops
    Nov 11 at 12:47

















up vote
0
down vote













You can do



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


and by using in operator



String2 in String1 


Or you can use



"nameOne".contains("nameTwo", ignoreCase = true)





share|improve this answer




















  • Case usually matters when it comes to files though, so setting ignoreCase to true might not be the best idea
    – Zoe
    Nov 11 at 12:19










Your Answer






StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");

StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);

else
createEditor();

);

function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);













draft saved

draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53244699%2fhow-to-compare-image-file-name-with-string-in-kotlin%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown

























2 Answers
2






active

oldest

votes








2 Answers
2






active

oldest

votes









active

oldest

votes






active

oldest

votes








up vote
1
down vote













A way (or trick) to solve this is to store the name of the drawable in the imageview's tag:



imageView.setImageResource(R.drawable.one)
imageView.tag = "one"


and then compare the tag:



when (imageView.tag.toString()) 
"one" -> buttonYes.setOnClickListener imageView.setImageResource(two)
"two" -> buttonYes.setOnClickListener imageView.setImageResource(five)



if you don't want to hardcode the id then use this:



imageView.setImageResource(R.drawable.one)
imageView.tag = resources.getResourceEntryName(R.drawable.one)





share|improve this answer






















  • thank you! that was very heplful! I used your idea and made some other changes to my code (like getting "setOnClickListner) before when) and it's working just like I wanted it to!
    – Klops
    Nov 11 at 12:47














up vote
1
down vote













A way (or trick) to solve this is to store the name of the drawable in the imageview's tag:



imageView.setImageResource(R.drawable.one)
imageView.tag = "one"


and then compare the tag:



when (imageView.tag.toString()) 
"one" -> buttonYes.setOnClickListener imageView.setImageResource(two)
"two" -> buttonYes.setOnClickListener imageView.setImageResource(five)



if you don't want to hardcode the id then use this:



imageView.setImageResource(R.drawable.one)
imageView.tag = resources.getResourceEntryName(R.drawable.one)





share|improve this answer






















  • thank you! that was very heplful! I used your idea and made some other changes to my code (like getting "setOnClickListner) before when) and it's working just like I wanted it to!
    – Klops
    Nov 11 at 12:47












up vote
1
down vote










up vote
1
down vote









A way (or trick) to solve this is to store the name of the drawable in the imageview's tag:



imageView.setImageResource(R.drawable.one)
imageView.tag = "one"


and then compare the tag:



when (imageView.tag.toString()) 
"one" -> buttonYes.setOnClickListener imageView.setImageResource(two)
"two" -> buttonYes.setOnClickListener imageView.setImageResource(five)



if you don't want to hardcode the id then use this:



imageView.setImageResource(R.drawable.one)
imageView.tag = resources.getResourceEntryName(R.drawable.one)





share|improve this answer














A way (or trick) to solve this is to store the name of the drawable in the imageview's tag:



imageView.setImageResource(R.drawable.one)
imageView.tag = "one"


and then compare the tag:



when (imageView.tag.toString()) 
"one" -> buttonYes.setOnClickListener imageView.setImageResource(two)
"two" -> buttonYes.setOnClickListener imageView.setImageResource(five)



if you don't want to hardcode the id then use this:



imageView.setImageResource(R.drawable.one)
imageView.tag = resources.getResourceEntryName(R.drawable.one)






share|improve this answer














share|improve this answer



share|improve this answer








edited Nov 11 at 9:34

























answered Nov 11 at 9:24









forpas

6,8101318




6,8101318











  • thank you! that was very heplful! I used your idea and made some other changes to my code (like getting "setOnClickListner) before when) and it's working just like I wanted it to!
    – Klops
    Nov 11 at 12:47
















  • thank you! that was very heplful! I used your idea and made some other changes to my code (like getting "setOnClickListner) before when) and it's working just like I wanted it to!
    – Klops
    Nov 11 at 12:47















thank you! that was very heplful! I used your idea and made some other changes to my code (like getting "setOnClickListner) before when) and it's working just like I wanted it to!
– Klops
Nov 11 at 12:47




thank you! that was very heplful! I used your idea and made some other changes to my code (like getting "setOnClickListner) before when) and it's working just like I wanted it to!
– Klops
Nov 11 at 12:47












up vote
0
down vote













You can do



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


and by using in operator



String2 in String1 


Or you can use



"nameOne".contains("nameTwo", ignoreCase = true)





share|improve this answer




















  • Case usually matters when it comes to files though, so setting ignoreCase to true might not be the best idea
    – Zoe
    Nov 11 at 12:19














up vote
0
down vote













You can do



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


and by using in operator



String2 in String1 


Or you can use



"nameOne".contains("nameTwo", ignoreCase = true)





share|improve this answer




















  • Case usually matters when it comes to files though, so setting ignoreCase to true might not be the best idea
    – Zoe
    Nov 11 at 12:19












up vote
0
down vote










up vote
0
down vote









You can do



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


and by using in operator



String2 in String1 


Or you can use



"nameOne".contains("nameTwo", ignoreCase = true)





share|improve this answer












You can do



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


and by using in operator



String2 in String1 


Or you can use



"nameOne".contains("nameTwo", ignoreCase = true)






share|improve this answer












share|improve this answer



share|improve this answer










answered Nov 11 at 9:31









hossam scott

1




1











  • Case usually matters when it comes to files though, so setting ignoreCase to true might not be the best idea
    – Zoe
    Nov 11 at 12:19
















  • Case usually matters when it comes to files though, so setting ignoreCase to true might not be the best idea
    – Zoe
    Nov 11 at 12:19















Case usually matters when it comes to files though, so setting ignoreCase to true might not be the best idea
– Zoe
Nov 11 at 12:19




Case usually matters when it comes to files though, so setting ignoreCase to true might not be the best idea
– Zoe
Nov 11 at 12:19

















draft saved

draft discarded
















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid


  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.

To learn more, see our tips on writing great answers.





Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


Please pay close attention to the following guidance:


  • Please be sure to answer the question. Provide details and share your research!

But avoid


  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.

To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53244699%2fhow-to-compare-image-file-name-with-string-in-kotlin%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Use pre created SQLite database for Android project in kotlin

Darth Vader #20

Ondo