我是android的初学者。我想在用户单击图像时显示图像描述(使用AlertDialog)。但是当我点击另一张图像时,AlertDialog框总是显示第一条保存的消息?单击其他图像时不会重置。有人请帮帮我吗?
MainActivity.java
Install-Package Svg
答案 0 :(得分:3)
试试这个
如果您必须使用 .equals()检查字符串,则在使用 ==
时if(imgpt1.getTag().equals("frontbumpers"))
{
message="This is Bumper";
}
else if(imgpt1.getTag().equals("frontfenders"))
{
message="This is Fenders";
}
else if(imgpt1.getTag().equals("frontheadlight"))
{
message="This is headlight";
}
else if(imgpt1.getTag().equals("frontgrilles")
{
message="This is grilles";
}
答案 1 :(得分:3)
首先,您在每个不应该是场景的情况下使用 imgpt1 。 而是使用
v.getTag.equals("xxx")
解决之后尝试使用最好的Android练习来比较字符串。
检查android(Java)中的字符串时的最佳做法首先使用
检查null和空字符串String string1 = "abc", string2 = "Abc";
TextUtils.isEmpty(string1); // Returns true if the string is empty or null
然后使用下面提到的代码检查相同的案例
string1.equals(string2) //Checks with case sensitivity
string1.equalsIgnoreCase(string2) // Checks without case sensitivity. Here this will return true.
答案 2 :(得分:2)
在onClick
中使用
imgpt1.getTag().equals("frontgrilles")
而不是
imgpt1.getTag()=="frontgrilles"
答案 3 :(得分:1)
您应该检查view
的标签而不是静态项目,因为它们将始终为真!看看你的第一个条件。 imgpt1
标记为“frontbumpers
”,因此该条件始终为真!因此它每次都显示相同的消息。
@Override
public void onClick(View v) {
String message="";
//for your clarification here v is the view which was clicked ex. impt1 or 2 3 4.... or anything which has an onClick listener assigned and was click will call this method.
if(v.getTag()=="frontbumpers")
{
message="This is Bumper";
}
else if(v.getTag()=="frontfenders")
{
message="This is Fenders";
}
else if(v.getTag()=="frontheadlight")
{
message="This is headlight";
}
else if(v.getTag()=="frontgrilles")
{
message="This is grilles";
}
}
**建议
equals()
使用==
而不是String
。改为`v.getTag()。equals(“someValueYouWantToCheck”)
答案 4 :(得分:1)
在onClick方法中,您使用了第一个图像用于所有if else条件,这就是为什么,无论您单击哪个图像,它都会显示第一个图像消息。
String message="";
if(**imgpt1.getTag()**=="frontbumpers")
{
message="This is Bumper";
}
else if(**imgpt1.getTag()**=="frontfenders")
{
message="This is Fenders";
}
else if(**imgpt1.getTag()**=="frontheadlight")
{
message="This is headlight";
}
else if(**imgpt1.getTag()**=="frontgrilles")
{
message="This is grilles";
}
答案 5 :(得分:0)
使用imgpt1.getTag().equals("string")
代替imgpt1.getTag()=="string"
试试这个:
@Override
public void onClick(View v) {
String message="";
if(imgpt1.getTag().equals("frontbumpers"))
{
message="This is Bumper";
}
else if(imgpt1.getTag().equals("frontfenders"))
{
message="This is Fenders";
}
else if(imgpt1.getTag().equals("frontheadlight"))
{
message="This is headlight";
}
else if(imgpt1.getTag().equals("frontgrilles"))
{
message="This is grilles";
}
AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);
builder.setTitle("Car Parts");
builder.setMessage(message);
builder.setNeutralButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
}).create().show();
}