0

我正在制作一个 android 应用程序,该应用程序根据用户在先前活动中的输入/选择显示游戏角色。我使用 Extras 来做到这一点:

UserName = getIntent().getExtras().getSerializable("Name").toString();
UserCharacter = (String) getIntent().getExtras().getSerializable("Char").toString();
UserItem = getIntent().getExtras().getSerializable("Itemz").toString();
UserRating = getIntent().getExtras().getSerializable("Stars").toString();

我知道这行得通,因为,

summary = (TextView) findViewById (R.id.Summary);
summary.setText("Name: " + UserName + "\nCharacter: " + UserCharacter + "\nItems: " + UserItem + "\nRating: " + UserRating);    

完全可以显示用户的选择。但是,当我将这些数据传递到 if/else-if 语句中时,代码会简单地忽略 if 语句。这是一个例子:

if (UserItem == "Wing + Helmet + Scarf")
image.setImageResource(R.drawable.tal);

该应用程序不会显示新的 ImageView,而是仅显示我必须用来在 .xml 中创建 ImageView 的默认图像。我尝试了各种方法来解决这个问题,但没有成功。我知道 ImageResource 部分有效,因为如果从 if 语句中取出它,那么它会完全改变 ImageView。任何建议将不胜感激。提前致谢!

4

1 回答 1

2
if (UserItem == "Wing + Helmet + Scarf")
   image.setImageResource(R.drawable.tal);

您的条件始终返回 false,因为您正在比较引用而不是值。你必须使用equals()方法:

if (UserItem.equals("Wing + Helmet + Scarf"))
   image.setImageResource(R.drawable.tal);

现在它应该可以工作了。

于 2013-03-16T20:09:31.413 回答