先週、この問題を解決しようとしました。すべての同様の質問を参照してください、私はなぜソリューションが私のために動作しないのか分からない。 私はリストビューを持ち、各アイテムはイメージビューを持っています。イメージビューでクリックすると、イメージリソースを変更したい。よくすべて完了。スクロールするとイメージ・リソースが変化します。 私の完全なコードは次のとおりです。私はミスをしていリストビューのスクロール時に画像が変化する
public class CustomBaseAdapter extends BaseAdapter {
Context context;
ArrayList<String> items;
public CustomBaseAdapter(Context context,ArrayList<String> items){
this.context = context;
this.items = items;
}
private class ViewHolder{
TextView titr;
ImageView image;
}
@Override
public int getCount() {
return items.size();
}
@Override
public Object getItem(int position) {
return items.get(position);
}
@Override
public long getItemId(int position) {
return items.hashCode();
}
@Override
public View getView(int position, View view, ViewGroup parent) {
View vi = view;
final ViewHolder holder ;
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if(view==null){
vi = inflater.inflate(R.layout.customlistitem,null);
holder = new ViewHolder();
holder.titr = (TextView) vi.findViewById(R.id.listtext);
holder.image = (ImageView) vi.findViewById(R.id.listimg);
holder.image.setTag(position);
vi.setTag(holder);
}
else{
holder = (ViewHolder) vi.getTag();
}
holder.titr.setText(items.get(position));
holder.image.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
v.setBackgroundResource(R.drawable.fav_ic);
}
});
return vi;
}
}
?
このコードはすばらしく見えます。しかし、行: 'items.set(position).setDrawableImage(R.drawable.fav_ic);' items.get()に変更する必要があります –
私はコードを編集しました –
ありがとうございます。あなたのコードは正しい。私の問題は解決されました。 –