이전 답변에서도 말씀드렷듯이 --ㅋ 뷰자체를 컨트롤 하려하지말고
데이터를 컨트롤한다는 개념으로 접근하셔야합니다.
원하시는 기능이 item클릭시 해당아이템의 맨오른쪽 ImageView에 이미지를 띄우고
이것이 스크롤되어서 뷰가 재사용되도 이미지가 보여지는 상태를 원하시는거라면
data에 ImageView의 뿌려질 이미지의 정보를 저장하는 변수를 하나만드시면 됩니다.
예를 들어 url을 통해서 이미지를 가져오시는것이라면
data클래스에 imageUrl 변수를 하나만들고
data입력시 imageUrl에 null을 먼저 넣습니다.
getView가 이런구조로 되어있다면
View v = convertView;
if (v == null) {
LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.list, null);
}
temp = item.get(position);
if (temp != null) {
// List Item control
}
List item control 영역에서
if(temp.imageUrl != null){
//이부분에 url를 가져와서 이미지뷰에 이미지를 보여주는 코드
}
imageUrl이 null이 아니라면 이미지뷰에 이미지를 설정합니다.
이렇게 해주면 이미지를 설정해준 뷰가 재사용되어도 설정했던 이미지를 똑같이 보여지게 됩니다.
아이템 클릭이 일어나면onItemClick 메서드에서
첫번째 메개변수인 AdapterView와 세번째 메개변수인 position을 사용하여 해당 아이템의 데이터를 가져옵니다.
Data getData = (Data)adapterView.getItemAtPosition(position);
그리고 getData.imageUrl변수에 url값을 적용하여 주고 데이터 변경되었다고 알려줍니다(새로고침)
list.remove(position);
list.add(position, new Data(getData.이미지, getData.스트링, 보여줄imageUrl);
customAdapter.notifyDataSetChanged();
뷰 재사용부분은 강제로 재사용하지않게 고칠수는 없습니다.
뷰가 재사용되어도 원하는 출력이 보여줄수있도록 item들에 설정해주는 속성값들을 data로 컨트롤하여야합니다.