无法比较Java Android中的字符串

时间:2017-07-12 18:20:47

标签: java android string

我已经为我的标题寻找了其他类似的问题。但是,这些答案都不起作用。

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依赖项和我已添加的库。

2 个答案:

答案 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美分。