I have a custom list adapter that extends BaseAdapter. I create a holder class to tag my views in order to avoid inflating views that already exist.
static class ViewHolder{
TextView tvName;
TextView tvDescription;
Button btAdd;
}
and in my getView i have somthing like this:
public View getView(int position, View convertView, ViewGroup parent) {
View vi = convertView;
ViewHolder holder = null;
if(vi == null){
vi = inflater.inflate(R.layout.list_row, null);
holder = new ViewHolder();
holder.tvName = (TextView)vi.findViewvById(R.id.name);
holder.tvDescription = (TextView)vi.findViewvById(R.id.desc);
holder.btAdd = (Button)vi.findViewvById(R.id.btnadd);
}else{
holder = (ViewHolder) vi.getTag();
}
holder.btnAdd.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
holder.btnAdd.startAnimation(scale);
holder.tvName.setVisibility(View.GONE);
}
});
return vi;
}
But eclipse get error from "holder.btnAdd.startAnimation(scale);" and says holder should be final......
How can I fix it?