このコードを新しいプロジェクトで使用することに成功しましたが、実際のコードにコピーすると、表示される画像はすべてがうまく作成されたものではありません(画像は描画可能なフォルダーにあり、すべてのデータは適切に宣言されています...)画像は「phoXX」で始まります。XXは整数(0〜62)です。imageview(imageView1という名前)とTextView(デバッグ用、textView1という名前)があり、ID(チェックイン時に適しています)が表示されます。 R.java ...)
これが私のコードです:
private Context mContext;
ImageView imageC=(ImageView)findViewById(R.id.imageView1);
TextView Tex=(TextView)findViewById(R.id.textView1);
Drawable drawableX = this.getResources().getDrawable(android.R.drawable.ic_dialog_alert);
Random random_monster = new Random();
int lerand = random_monster.nextInt(62);
int id = mContext.getResources().getIdentifier("drawable/pho"+lerand, "drawable",mContext.getPackageName());
if (id>0)
{
drawableX = getResources().getDrawable(id);
}
imageC.setImageDrawable(drawableX);
Tex.setText(Integer.toString(lerand)+":"+id);
つまり、私が言うように、画像が表示され、数字が表示されますが、たとえばpho29はpho48という名前の画像を表示します(そして、pho48はpho29を表示しません)IDは2130837535で、これはR.javaに表示されます。 public static final int pho29 = 0x7f02001f; pho48は:
public static final int pho48 = 0x7f020034;
ある番号では、表示される画像は良いものですが、他の番号では、画像は良いものではありません(そして、同じ番号で常に同じ画像が表示されます....つまり、pho29の場合、常にpho48が表示されます。私の活動のすべてで)
私は本当に私が見逃しているものを理解していません...あらゆる種類の助けのためにすべて
編集:いくつかの一致の下(左側に表示されるはずの番号、右側に表示される番号)
2->6
17->32
19->34
24->41
43->43
51->51
36->55
37->56
38->57
56->56
59->59
61->61
ご覧のとおり、56は56 AND37...で表示されます。