2017-05-17 5 views
-6

6面の種類の5つのランダムなダイスを表示したいとします。

私は1と6の間に5つの乱数を生成するコードを持っています。私は5つのダイスのImageViewを持っています。それらは、d6_image_view_1、d6_image_view_2などに設定されたIDを持っています。drawableフォルダには、d1.jpg、d2.jpgなどがあります。したがって、2番目の画像を4に変更したい場合、次のようにします。変数を使用してリソースを定義する

ImageView d6ImageView2 = (ImageView) findViewById(R.id.d6_image_view_2); 
d6ImageView2.setImageResource(R.drawable.d4); 

ImageViewの数値と描画可能変数を変数に含めるとどうなりますか?
適切な出力を得るためにセットアップする場合、長く複雑な入れ子にしなければなりませんか?あるいは、どういうわけかそれらの数字をコードに入れてもいいですか?明らかにこれは機能しません。

int image = 2; 
int picture = 4; 
ImageView d6ImageView(image) = (ImageView) findViewById(R.id.d6_image_view_(image)); 
d6ImageView(image).setImageResource(R.drawable.d(picture)); 

答えて

0

Javaには動的変数はありません。 Java変数はソースコードで宣言する必要があります。だから、解決策は、あなたが行うことができ描画可能なリソースとビューidの

例次に

int[] resourceIds = new int[] { R.drawable.d1, R.drawable.d2, R.drawable.d3, R.drawable.d4, R.drawable.d5, R.drawable.d6 } 

int[] viewIds = new int[] { R.id.d6_image_view_1, R.id.d6_image_view_2, R.id.d6_image_view_3, R.id.d6_image_view_4, R.id.d6_image_view_5, R.id.d6_image_view_6 } 

のために両方のための整数の二つの配列を作成することができ

int image = 2; 
int picture = 4; 
ImageView imgView = (ImageView) findViewById(viewIds[image]); 
imgView.setImageResource(resourceIds[picture]); 
関連する問題