2

3x3のマトリックスに9つの画像ビューを持つアプリを開発しています。 ユーザーが画像をクリックすると、その画像を変更したいと思います。 だから、TATは、I [i]はイムとエラーを取得しています。このforループを使って画像ビューの配列にアクセスする

public int[] imv= {R.id.im0, R.id.im1, R.id.im2, R.id.im3,R.id.im4, R.id.im5, R.id.im6, R.id.im7,R.id.im8};//Loading ids into array imv 
for(int i=0;i<imv.length;i++) 
     { 
      ImageView im[i] = (ImageView) findViewById(imv[i]);//Attaching ids 
     } 
for(int i=0;i<imv.length;i++) 
     { 
      im[i].setOnClickListener 
     } 

のようなforループを使用してそれらにアクセスすることが可能です9つのIDSとクリックリスナー

に9セットを結ぶ必要です。しかし私が私を取り除くと、私はイメージビューのコレクションであるオブジェクトを取得します。個々の画像ビューにアクセスしてクライアントリスナーを設定するにはどうすればよいですか?イムの

+1

に使用してGetViewメソッドであなたのロジックを記述することができます

http://developer.android.com/resources/tutorials/views/hello-gridview.html

この例を参照してください。あなたは良くやっている。エラーは何ですか? * ImageView im [] =新しいImageView [imv.length] *を初期化しましたか? – Arslan

+0

こんにちは、私は私なしのイムを持って、オブジェクトを持っています。しかし問題は、個々の画像ビューにアクセスすることができないことです。 9でどのタイルがクリックされたのかを知り、その位置に基づいてタイルイメージを変更したい。私はただim.setonclicklistenerを得ることができました。どのように私はそれの中にimageivewsにアクセスできますか? – 8A52

答えて

1

を、私はGridViewのために行く方が良いだろうと思うあなたはimageView.setOnClickListener

0

//スコープ[i]は、私は問題は「イム」のためのループにそれがローカル作る(forループ内で宣言されていることだと思いループ

for(int i=0;i<imv.length;i++) 
     { 
      ImageView im[i] = (ImageView) findViewById(imv[i]);//Attaching ids 
im[i].setOnClickListener(this); 

     } 
0

のための最初に終了しますのみ)ループの外側で "im"を宣言し、内部で定義します。

試してみてください。

ImageView im[] = new ImageView im[imv.length]; 
for(int i=0;i<imv.length;i++) 
     { 
      im[i] = (ImageView) findViewById(imv[i]);//Attaching ids 
     } 

注:私は適切に配列を宣言する方法を忘れてしまいました。ただ、他の場所でそれを確認して..:D

関連する問題