我已经为我的标题寻找了其他类似的问题。但是,这些答案都不起作用。
public void clickedCheck(View view) {
String input = emojiconTextView.getText().toString();
String input2 = myRandomImage.getDrawable().toString();
if (input.equals(input2)) {
checkingText.setText("Well Done!");
}
}
然而,文字并没有改变为“完成!”#34;。它保持默认值。
我将EmojiconTextView对象与ImageView对象进行比较。如果2张图像相同,则应显示“完成!”#34;。 EmojiconTextView来自Gradle依赖项和我已添加的库。
答案 0 :(得分:2)
这是因为您比较TextView中的文本值并使其成为字符串,以及drawable的文本表示。
在Drawable上调用toString将返回drawable而不是drawable名称的字符串表示。所以字符串永远不会相等。
//this is the string value of whatever is in the textview
String input = emojiconTextView.getText().toString();
// this is the text representation of a drawable. not the name of the drawable
String input2 = myRandomImage.getDrawable().toString();
设置图像的标记
<ImageView ...
android:tag="some tag"
/>
尝试使用myRandomImage.getTag().toString()
答案 1 :(得分:0)
我认为,如果你想要一个“可绘制的”并使用它的toString方法,你可能会得到一些不同于你期望的东西。不确定,并没有尝试过..但从经验来看,似乎在“getDrawable”上使用toString方法会产生一些奇怪的东西。你会知道你是否调试并检查input2的值。只是我的0.02美分。