W zeszłym tygodniu próbuję rozwiązać ten problem. zobacz wszystkie podobne pytania i nie wiem dlaczego, rozwiązania nie działają dla mnie. Mam widok listy i każdy element ma widok obrazu. po kliknięciu na widok obrazu chcę zmienić zasób obrazu. dobrze. wszystko gotowe. ale podczas przewijania zasoby obrazu zmieniają się. mój pełny kod jest:Moje obrazy zmieniają się podczas przewijania w widoku listy Android
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;
}
}
gdzie mam błąd?
ten kod wygląda świetnie. ale w linii: "items.set (position) .setDrawableImage (R.drawable.fav_ic);" powinien zmienić się na items.get() –
edytowałem kod, proszę sprawdzić –
dziękuję. Twój kod jest poprawny. mój problem został rozwiązany. –