ArrayList<ImageView> arrImageView = new ArrayList<ImageView>();
arrImageView.add((ImageView) findViewById(R.id.imageView1));
arrImageView.add((ImageView) findViewById(R.id.imageView2));
arrImageView.add((ImageView) findViewById(R.id.imageView3));
arrImageView.add((ImageView) findViewById(R.id.imageView4));
arrImageView.add((ImageView) findViewById(R.id.imageView5));
arrImageView.add((ImageView) findViewById(R.id.imageView6));
arrImageView.add((ImageView) findViewById(R.id.imageView7));
arrImageView.add((ImageView) findViewById(R.id.imageView8));
arrImageView.add((ImageView) findViewById(R.id.imageView9));
저기 R.id.imageView1 ~ R.id.imageView9까지 이것을 반복하고 싶은데요...
R.id.imageView를 어떻게 반복으로 가져와야 할지 모르겠습니다.
for(int i = 0; i < 10; i++ ){
arrImageView.add((ImageView) findViewById(??????));
}
넘 개념없는 질문이라 죄송합니다 꾸벅~!
포문에서 int 로선업해서
arrImageView.add(ImageView)findViewById(R.id.imageView + i);로 해도 될것 같습니다
만약 int 값이라 에러가 난다면 i값을 String으로 변환해주면 됩니다
음 아마 ArrayList는 ImageView를 담는데
위에서 add 시키는건 리소스가 Int형이기 때문에 그런것이 아닐까요.
보통 Int형 배열에 R.id.Image + i 이런식으로 구현을 하면 잘 됩니다만.
int형을 담는 ArrayList를 만드시는게 맞을 것 같습니다 :)
R.id.imageView + i 가 아니고 R.id.imageView1 + i 로 해야 합니다.
단, 이 방법은 id가 모두 순차적으로 선언되어야 하면 R.java에서 값을 확인해 보셔야 합니다.
각 id 별 참조값이 1씩 증가하는지 말입니다.
i는 0부터 시작해야 하구요.
for(int i=0; i<9; i++)
arrImageView.add((ImageView) findViewById(R.id.imageView1+i));
이렇게 하는게 아니라면 getResources().getIdentifier("imageView"+i, "id", getPackageName());을 이용해야 합니다.
여기서 i는 1부터 시작해야 합니다.
String pkg = getPackageName();
for(int i=1; i<=9; i++){
int id = getResources().getIdentifier("imageView"+i, "id", pkg);
arrImageView.add((ImageView) findViewById(id));
}




for(int i = 1; i < 10; ++){
arrImageView.add(ImageView)findViewById(R.id.imageView + Integer.parseInt("i"));
}
해보진 않았지만 이런 형식이 맞을텐데요.
음 뭔가 뺴먹은 것 같기도..