0

前のアクティビティでのユーザーの入力/選択に基づいてゲーム キャラクターを表示する Android アプリを作成しています。これを行うためにエクストラを使用しました:

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 が完全に正常に変更されるため、ImageResource 部分が機能することはわかっています。どんな提案でも大歓迎です。前もって感謝します!

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 に答える