2
몇 시간 동안이 문제가 발생합니다. ListView의 첫 번째 목록 항목에 대한 이미지를 설정하려고하지만 다른 목록 항목의 일부 ImageView도 변경됩니다.ListView 내 ImageView 업데이트
public class MyAdapter extends BaseAdapter {
private LayoutInflater mInflater;
public ArrayList<ListItem> myItems = new ArrayList<ListItem>();
Player[] players;
public MyAdapter() {
DataBase banco = new DataBase(ScoreBoard.this);
players = banco.consultaJogadores();
mInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
for (int i = 0; players[i] != null; i++) {
ListItem listItem = new ListItem();
listItem.caption = players[i].getName();
myItems.add(listItem);
}
notifyDataSetChanged();
}
public int getCount() {
return myItems.size();
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
holder = new ViewHolder();
convertView = mInflater.inflate(R.layout.topplayer, null);
holder.textView = (TextView) convertView.findViewById(R.id.topPlayerTextView);
holder.imageview = (ImageView) convertView.findViewById(R.id.topPlayerImageView);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.textView.setText(position + " " + players[position].getName() + " " + players[position].getScore());
if (position == 0) {
holder.imageview.setImageResource(R.drawable.ball);
}
return convertView;
}
}
class ViewHolder {
TextView textView;
ImageView imageview;
}
class ListItem {
String caption;
}
목록의 첫 번째 플레이어에서 이미지를 변경하고 싶습니다. 인덱스 0, 1, 4, 6, 8, 9, 11, 13 및 14의 플레이어가 업데이트되고 논리적 순서를 따르지 않습니다. 그리고 스크롤 할 때 이미지가 다시 변경됩니다.
덕분에 당신은 많은 ListItems 이미지가 명시 적으로 해제 설정해야 설정하지 않으 때문에
감사합니다. 당신은 ImageResource에 null을 설정할 수 없습니다. 그러나 이것을 시도했습니다 : holder.imageview.setImageResource (R.drawable.blank); 나는 더 나은 것을 만들 것이다 la 그리고 난 ViewHolder에서 이미지를 제거합니다. 다시 감사합니다. – user1684024
'setImageDrawable', 또는 예 투명 이미지 리소스를 사용하십시오. – Blundell
아, 투명 이미지를 사용하는 것이 더 좋습니다. ImageView를 제거하려고 시도합니다. – user1684024