try it,
public class CustomBaseAdapter extends BaseAdapter { Context context; ArrayList<Items> items; public CustomBaseAdapter(Context context,ArrayList<Items> items){ this.context = context; this.items = items; } private class ViewHolder{ TextView titr; ImageView image; } @Override public int getCount() { return items.size(); } @Override public Items 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).getStrTxt()); holder.image.setImageResource(items.get(position).getDrawableImage()); holder.image.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { items.set(position,new Items(R.drawable.fav_ic)); notifyDataSetChanged(); } }); return vi; } }
Add model class:
public class Items { int drawableImage; String strTxt; public Items(int drawableImage) { this.drawableImage = drawableImage; } public int getDrawableImage() { return drawableImage; } public void setDrawableImage(int drawableImage) { this.drawableImage = drawableImage; } public String getStrTxt() { return strTxt; } public void setStrTxt(String strTxt) { this.strTxt = strTxt; } }
source share