如何在android中使用id获取视图(ImageView)

时间:2013-12-06 06:39:21

标签: android android-layout view imageview android-imageview

更新

我知道我可以使用数组或列表但是我希望使用一种有效的方式,而不是使用数组或集合,感谢大家 特别感谢mussharapp

您好我想使用其ID访问Imageview 例如,我有一个使用循环

创建的imageview
for(int i=1;i<10;i++) { 
      Imageview mv=new ImageView(this);
        mv.setid(i); 
       // and so on for image properties 
             }

现在我想获得我在循环中创建的所有图像如何获取这些图像是否有任何方式使用id或其他东西???

我面临的同样问题

4 个答案:

答案 0 :(得分:1)

声明private arraylist:

private ArrayList<Imageview> images = new ArrayList<Imageview>();

然后将所有观点存储到该列表中:

for(int i=1;i<10;i++) { 
    Imageview mv=new ImageView(this);
    mv.setid(i); 
    // and so on for image properties
    images.add(mv); 
}

最后,您可以根据职位/ ID(自position == id起)来获取它们:

ImageView imageView = images.get(position);

请记得在完成后清除列表或onDestroy()

images.clear();

答案 1 :(得分:1)

鉴于您确定图像视图ID是唯一的,您可以执行类似这样的操作

//Your code
for(int i=1;i<10;i++) { 
      Imageview mv=new ImageView(this);
        mv.setid(i); 
       // and so on for image properties 
             }

//...
List<Drawable> drawables = new ArrayList<Drawable>();
for (int i = 1; i < 10; i++) {
    ImageView mv = (ImageView) findViewById(i);
    drawables.add(mv.getDrawable());
}

不确定您要做的事情是否有效。对于他们提到的其他建议,你可能会更好。

答案 2 :(得分:0)

首先,您必须使用其路径设置图像阵列,然后才能使用它...

答案 3 :(得分:0)

您可以保留一组ImageView。

ImageView[] mImageViews = new ImageView[10];
        for(int i=1;i<10;i++) { 
            mImageViews[i] = new ImageView(this); 
        }

并访问这些像mImageViews [2]或mImageViews [5]