为什么if语句在Java/Android中不起作用?

为什么if语句在Java/Android中不起作用?,java,android,if-statement,tags,android-imageview,Java,Android,If Statement,Tags,Android Imageview,我正在创建一个Android程序,当单击一个按钮时,它会检查两个图像是否相同(ImageView和EmojiconTextView)EmojiconTextView来自我在应用程序中使用的库 public void clickedCheck(View view) { String input = emojiconTextView.getTag().toString(); String input2 = myRandomImage.getTag().toString();

我正在创建一个Android程序,当单击一个按钮时,它会检查两个图像是否相同(
ImageView
EmojiconTextView
EmojiconTextView
来自我在应用程序中使用的库

public void clickedCheck(View view) {

    String input = emojiconTextView.getTag().toString();
    String input2 = myRandomImage.getTag().toString();

    if (input.equals(input2)) {
        checkingText.setText("Well Done!");
    } else {
            checkingText.setText("Unlucky!");
    }
}
但是,当我单击按钮时,即使图像相等,程序也会显示“不幸”。所以它完全无视我的“如果声明”

这是我的
ImageView
属性:

<ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/myRandomImage"
        android:tag="myTag2"
        android:layout_above="@+id/emojicon_text_view"
        android:layout_centerHorizontal="true"/>

如果您需要进一步的帮助来理解这个问题,请告诉我。

因为您在xml代码中使用了不同的标记。见下文

您正在将标记EmojiiconTextView设置为

android:tag="myTag"
另一方面,您正在将ImageView上的标记设置为

android:tag="myTag2"
您正在使用equal方法比较标记

 if (input.equals(input2)) {
    checkingText.setText("Well Done!");
} 
他们怎么可能平等呢?:)


希望这是有意义的。

因为您在xml代码中使用了不同的标记。见下文

您正在将标记EmojiiconTextView设置为

android:tag="myTag"
另一方面,您正在将ImageView上的标记设置为

android:tag="myTag2"
您正在使用equal方法比较标记

 if (input.equals(input2)) {
    checkingText.setText("Well Done!");
} 
他们怎么可能平等呢?:)


希望这是有意义的。

可能是
新字符串(“myTag”).equals(“myTag2”)
给出了false?
尝试打印input1和input2以证实。

可能是
新字符串(“myTag”).equals(“myTag2”)
给出了false?
public void clickedCheck(View view) {

    int input = Integer.parseInt(emojiconTextView.getTag());
    int input2 = Integer.parseInt(myRandomImage.getTag());

    if (input == input2) {
        checkingText.setText("Well Done!");
    } else {
        checkingText.setText("Unlucky!");
    }
}

试着打印输入1和输入2来证实。

您是在比较标签,而不是比较图像

public void clickedCheck(View view) {

    int input = Integer.parseInt(emojiconTextView.getTag());
    int input2 = Integer.parseInt(myRandomImage.getTag());

    if (input == input2) {
        checkingText.setText("Well Done!");
    } else {
        checkingText.setText("Unlucky!");
    }
}

查看有关如何比较两个图像的链接:-

您正在比较标记,而不是比较图像


查看这个关于如何比较两个图像的链接:-

就像@AbulWaheed所说的,因为您每次都在xml资源文件中设置标记

 if (input.equals(input2)) {
    checkingText.setText("Well Done!");
} else {
        checkingText.setText("Unlucky!");
}
您将始终比较xml文件中设置的标记。为了解决这个问题,您是否设置了将在Java代码中为ImageView显示的drawable

如果是,您还可以使用
imageview.setTag(“标记名”)
设置标记,因为我假设emojiView和imageview都是

这样,您就可以拥有某种类型的map
HashMap-map
,当您选择要在imageview中使用的绘图对象时,您会自动设置标记

String tag = map.get(Drawable)
imageview.setTag(tag)

就像@AbulWaheed所说的,因为每次都在xml资源文件中设置标记

 if (input.equals(input2)) {
    checkingText.setText("Well Done!");
} else {
        checkingText.setText("Unlucky!");
}
您将始终比较xml文件中设置的标记。为了解决这个问题,您是否设置了将在Java代码中为ImageView显示的drawable

如果是,您还可以使用
imageview.setTag(“标记名”)
设置标记,因为我假设emojiView和imageview都是

这样,您就可以拥有某种类型的map
HashMap-map
,当您选择要在imageview中使用的绘图对象时,您会自动设置标记

String tag = map.get(Drawable)
imageview.setTag(tag)


你比较标签,你在XML中使用不同的标签。那么标签必须相同吗?你清楚地比较两个字符串,然后它们必须相同吗?你比较标签,你在XML中使用不同的标签吗?那么标签必须相同吗?你清楚地比较两个字符串,然后它们必须相同吗?你是说我的标签必须相同吗?我不是说它们必须相同平等。我指错了你正在做的事。你们的测试条件陈述表明它们必须是相同的才能通过相同的测试。哦,我明白了。那么,有没有正确的方法来进行比较呢但是,我的代码仍然没有按我希望的方式工作:)我想比较ImageView和EmojiconTextView。我想让我的程序看看它们是相同的图像,还是不同的图像。请参见ImageView显示一个随机图像,然后用户选择另一个图像。如果用户选择了正确的图像(ImageView和EmojiconTextView中的图像相等,那么它必须说“做得好”,否则如果用户错误,那么它必须显示“不走运”:)那么你是说我的标签必须相同吗?我不是说它们必须相等。我指错了你正在做的事。你们的测试条件陈述表明它们必须是相同的才能通过相同的测试。哦,我明白了。那么,有没有正确的方法来进行比较呢但是,我的代码仍然没有按我希望的方式工作:)我想比较ImageView和EmojiconTextView。我想让我的程序看看它们是相同的图像,还是不同的图像。请参见ImageView显示一个随机图像,然后用户选择另一个图像。如果用户选择了正确的图像(ImageView和EmojiconTextView中的图像相等,那么它必须说“干得好”,否则如果用户错了,那么它必须显示“不走运”:)它说“不兼容类型”我尝试了您编辑过的答案,整数中的parseInt(java.lang.String)不能应用于(java.lang.Object)它说“不兼容类型”,我试过你编辑过的答案,它的整数parseInt(java.lang.String)不能应用于(java.lang.Object)。不幸的是,这个问题说的是一个相机图像,这些不是两个相机图像。不幸的是,这个问题说的是一个相机图像,这些不是两个相机图像。