안드로이드 개발 질문/답변
(글 수 45,052)
for(i = 0; i < mImageIds.length; i++){
imageView[i].setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Toast.makeText(teste.this, i + "test", Toast.LENGTH_LONG).show();
}
});
}
위는 현재 코드이고. 아래는 제가 구현되기를 원하는 코드입니다
imageView[0].setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Toast.makeText(teste.this, 0 + "test", Toast.LENGTH_LONG).show();
}
});
imageView[1].setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Toast.makeText(teste.this, 1 + "test", Toast.LENGTH_LONG).show();
}
});
imageView[2].setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Toast.makeText(teste.this, 2 + "test", Toast.LENGTH_LONG).show();
}
});
imageView[3].setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Toast.makeText(teste.this, 3 + "test", Toast.LENGTH_LONG).show();
}
});
구현하고자 하는건 따로따로 클릭리스너를 주는것인데.
맨 위의 코드와 같이 FOR문을 쓰면 모든 ImageView가mImageIds.length의 값만 받네요.
어떤 view를 클릭해도 10 test만 뜹니다.
따로따로 하면 되는데 왜 for문으로 돌리면 안되지? ㄱ-
왜 그런걸까요 ? -_- 답답해서 질문올려봅니다.
imageView[i].setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Toast.makeText(teste.this, i + "test", Toast.LENGTH_LONG).show();
}
});
}
위는 현재 코드이고. 아래는 제가 구현되기를 원하는 코드입니다
imageView[0].setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Toast.makeText(teste.this, 0 + "test", Toast.LENGTH_LONG).show();
}
});
imageView[1].setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Toast.makeText(teste.this, 1 + "test", Toast.LENGTH_LONG).show();
}
});
imageView[2].setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Toast.makeText(teste.this, 2 + "test", Toast.LENGTH_LONG).show();
}
});
imageView[3].setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Toast.makeText(teste.this, 3 + "test", Toast.LENGTH_LONG).show();
}
});
구현하고자 하는건 따로따로 클릭리스너를 주는것인데.
맨 위의 코드와 같이 FOR문을 쓰면 모든 ImageView가mImageIds.length의 값만 받네요.
어떤 view를 클릭해도 10 test만 뜹니다.
따로따로 하면 되는데 왜 for문으로 돌리면 안되지? ㄱ-
왜 그런걸까요 ? -_- 답답해서 질문올려봅니다.
클릭리스너라는 메소드라는 것이 클릭을 했을때 그 클릭이벤트에 대한 어떤 지정된 동작을 하는 것이기 때문에
클릭 한번에 하나의 동작만 합니다.
만약 클릭 한번에 두개 이상의 동작을 하게 되면 이상해지겠죠?-_-;;;난 전화 걸었는데 전화에 문자까지 보내면 난감;;;
따라서 for문을 사용해도 10 test만 뜨는 것입니다.
도움이 됐나 모르겠습니다.