2

我正在开发一个应用程序,它有一个3x3矩阵中的9个图像视图。 我想更改他们的图像,如果用户点击它们。 所以TAT需要连接9个ID和9组上点击听众使用for循环访问imageviews数组

是否有可能使用访问它们的循环这样

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 
     } 

我正在与IM [i]的错误。但是,如果我删除我,我得到一个对象im,这是一个图像集合。我如何访问各个图像浏览并设置onclicklisteners?在IM [i]的

+1

写你的逻辑在getView方法你做得很好。什么是错误。你有没有初始化* ImageView im [] = new ImageView [imv.length] *? – Arslan 2012-02-14 07:56:07

+0

嗨,我已经初始化im没有我,并得到了对象。但问题是我无法访问个人图像浏览。我想知道在9中点击了哪个图块,并根据位置更改图块图像。我只能得到im.setonclicklistener。我如何访问它里面的imageivews? – 8A52 2012-02-14 11:29:33

回答

0

//范围将在第一端的环

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

     } 
0

我认为问题是,“IM”是内声明的for循环(使其成为当地的for循环只有)..在循环外声明“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