ListView の最初のリスト項目の画像を設定しようとしていますが、他のリスト項目の一部の ImageViews も変更されています。
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 のプレーヤーが更新されますが、論理的な順序には従いません。スクロールすると、画像が再び変わります。
ありがとう