我正在创建一个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!");
}
}
然而,当我点击按钮时,程序会显示" Unlucky"即使图像相同。所以它完全无视我的if语句'。
这是我的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"/>
这是来自我的EmojiconTextView
:
<hani.momanii.supernova_emoji_library.Helper.EmojiconTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/emojicon_text_view"
android:textColor="@android:color/black"
android:textAppearance="@style/TextAppearance.AppCompat.Large"
android:text="Emojicon Text View"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:tag="myTag"
android:layout_marginTop="26dp"/>
如果您需要进一步帮助理解问题,请告知我们。
答案 0 :(得分:3)
因为您在xml代码中使用了不同的标记。见下文
您正在将标记EmojiiconTextView设置为
android:tag="myTag"
另一方面,您将ImageView上的标记设置为
android:tag="myTag2"
您正在使用相同的方法比较标签
if (input.equals(input2)) {
checkingText.setText("Well Done!");
}
他们怎么能平等? :)
希望这是有道理的。
答案 1 :(得分:1)
就像@AbulWaheed所说,因为你每次都在xml资源文件中设置你的标签
if (input.equals(input2)) {
checkingText.setText("Well Done!");
} else {
checkingText.setText("Unlucky!");
}
您将始终比较在xml文件中设置的标记。要解决这个问题,您是否设置了将在Java代码中显示ImageView的drawable?
如果你是,你也可以用imageview.setTag("tagName")
设置标签,因为我假设有emojiView和imageView。
这样,您可以使用某种地图HashMap<Drawable, String> map
,当您选择要在imageview中使用的Drawable时,您会自动设置标记。
String tag = map.get(Drawable)
imageview.setTag(tag)
答案 2 :(得分:0)
可能是new String("myTag").equals("myTag2")
假的吗?
尝试打印input1和input2来证实。
答案 3 :(得分:0)
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!");
}
}
答案 4 :(得分:0)
您正在比较标签而不是比较图像。
查看此链接,了解如何比较两张图片: - compare two images in android