내 CustomAdapter 내에서 rowView의 배경색을 변경하고 있는데, 목록을 아래로 스크롤하고 뷰를 백업하면 화면이 새로 고쳐지고 배경이 사라지는 것은 listView 재활용 메커니즘 때문이라는 것을 알고 있지만 중지 할 수는 없습니다.
내 getView 함수는 다음과 같습니다.
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
final Holder holder = new Holder();
final View rowView;
rowView = inflater.inflate(R.layout.program_list, null);
holder.tv = (TextView) rowView.findViewById(R.id.textView1);
holder.img = (ImageView) rowView.findViewById(R.id.imageView1);
holder.tv.setText(result[position]);
holder.img.setImageResource(imageId[position]);
rowView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (position != 0)
rowView.setBackgroundColor(Color.rgb(70, 190, 200));
}
});
return rowView;
}
내가하고 싶었던 것은 : 이미 눌려진 모든 위치를 배열 안에 저장하고 매번 그들 모두를 색칠하는 것입니다. 나는 많은 다른 해결책을 보았지만 완전히 이해하지 못했습니다.
다른 접근 방식을 사용하고 클릭 한 항목의 위치 어딘가에 저장해야한다고 생각합니다. 그런 다음보기를 만들 때 위치가 저장되어 있는지 확인하고 배경을 변경합니다. 도움이되기를 바랍니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다