eclipseにてAndroidアプリを作成中です。
if文に配列を使うコードを書いたら、『メソッド setImageResource(int) は型 Integer で未定義です』というエラーが出てしまいました。
自分なりに調べてみた所、int型で配列を使う際はIntegerにしなければダメだという事を知り、Integerに変換(?)したのですが、それでもエラーが消えてくれません。
自分のコードはどう間違っていて、どう直せばエラーが消え、正しく動くのかどうか教えていただけないでしょうか。
よろしくお願いします。
lang
1package jp.example.wgamen; 2 3import java.util.Random; 4import android.annotation.SuppressLint; 5import android.app.Activity; 6import android.content.Intent; 7import android.content.res.TypedArray; 8import android.os.Bundle; 9import android.view.View; 10import android.widget.Button; 11import android.widget.ImageView; 12 13public class SubActivity extends Activity { 14 15 ImageView go[]; 16 17 @SuppressLint("UseValueOf") 18 @Override 19 protected void onCreate(Bundle savedInstanceState) { 20 super.onCreate(savedInstanceState); 21 setContentView(R.layout.sub); 22 // 画面に6個の画像表示領域の器を配列で用意 23 go = new ImageView[5]; 24 25 // 配列に画面に配置したImageViewを設定 26 go[0] = (ImageView)findViewById(R.id.v1); 27 go[1] = (ImageView)findViewById(R.id.v2); 28 go[2] = (ImageView)findViewById(R.id.v3); 29 go[3] = (ImageView)findViewById(R.id.v4); 30 go[4] = (ImageView)findViewById(R.id.v5); 31 go[5] = (ImageView)findViewById(R.id.v6); 32 33 //整数を入れる為の変数を宣言 34 int go2; 35 Integer go_r = new Integer(go2); 36 37 // 画像のリストを取得 38 TypedArray images = getResources().obtainTypedArray(R.array.r); 39 TypedArray images2 = getResources().obtainTypedArray(R.array.2r); 40 TypedArray images3 = getResources().obtainTypedArray(R.array.3r); 41 TypedArray images4 = getResources().obtainTypedArray(R.array.4r); 42 43 // Randomクラスのインスタンスを生成 44 Random r = new Random(); 45 46 //0以上100未満の整数の乱数を作成する 47 go_r = r.nextInt(100); 48 49 //ランダムで出た数が2以下なら4rの配列から1枚画像を表示する 50 if(go_r <= 2){ 51 go_r.setImageResource(R.array.4r); 52}else 53 //ランダムで出た数が3以上12以下なら3rの配列から1枚画像を表示する 54 if((go_r >= 3) && (go_r <= 12)){ 55 go_r.setImageResource(R.array.3r); 56}else 57 //ランダムで出た数が13以上39以下なら2rの配列から1枚画像を表示する 58 if((go_r >= 13) && (go_r <= 39)){ 59 go_r.setImageResource(R.array.2r); 60}else{ 61 //それ以外(それ以降)の数字ならrの配列から1枚画像を表示する 62 go_r.setImageResource(R.array.r); 63} 64
なにとぞよろしくお願いします。
追記:沢山のご教示ありがとうございます。お返事が遅くなってしまいすみません。
いただいたアドバイスを参考にソースを変えたところ、エラーが消えました!ありがとうございます!
ですが、// 画像のリストを取得 の所のコードが働かず、画像が何も表示されません
// 画像のリストを取得 のコードを生かし、画像を表示させるには何が足らないのでしょうか。図々しいですが、再度お知恵をお借りできたらと思います。
どうかよろしくお願いします
lang
1 // 画面に6個の画像表示領域の器を配列で用意 2 go = new ImageView[5]; 3 4 // 配列に画面に配置したImageViewを設定 5 go[0] = (ImageView)findViewById(R.id.v1); 6 go[1] = (ImageView)findViewById(R.id.v2); 7 go[2] = (ImageView)findViewById(R.id.v3); 8 go[3] = (ImageView)findViewById(R.id.v4); 9 go[4] = (ImageView)findViewById(R.id.v5); 10 go[5] = (ImageView)findViewById(R.id.v6); 11 12 //整数を入れる為の変数を宣言 13 int go2 =0; 14 15 // 画像のリストを取得 16 TypedArray images = getResources().obtainTypedArray(R.array.r); 17 TypedArray images2 = getResources().obtainTypedArray(R.array.2r); 18 TypedArray images3 = getResources().obtainTypedArray(R.array.3r); 19 TypedArray images4 = getResources().obtainTypedArray(R.array.4r); 20 21 // Randomクラスのインスタンスを生成 22 Random r = new Random(); 23 24 //0以上100未満の整数の乱数を作成する 25 go2 = r.nextInt(100); 26 27 //ランダムで出た数が2以下なら4rの配列から1枚画像を表示する 28 if(go2 <= 2){ 29 go[0].setImageResource(R.array.4r); 30}else 31 //ランダムで出た数が3以上12以下なら3rの配列から1枚画像を表示する 32 if(go2 <= 12){ 33 go[0].setImageResource(R.array.3r); 34}else 35 //ランダムで出た数が13以上39以下なら2rの配列から1枚画像を表示する 36 if(go2 <= 39){ 37 go[0].setImageResource(R.array.2r); 38}else{ 39 //それ以外(それ以降)の数字ならrの配列から1枚画像を表示する 40 go[0].setImageResource(R.array.r); 41}
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。