Как я реализую держатель вида?Как реализовать держатель вида в действии
private class ViewHolder {
TextView code, txtv;
CheckBox name;
Button btnnn;
}
@Override
public View getView(final int position, View convertView,
ViewGroup parent) {
ViewHolder holder = null;
Log.v("ConvertView", String.valueOf(position));
if (convertView == null) {
LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = vi.inflate(R.layout.abb_list, null);
holder = new ViewHolder();
holder.code = (TextView) convertView.findViewById(R.id.code);
holder.name = (CheckBox) convertView
.findViewById(R.id.checkBox1);
holder.btnnn = (Button) convertView.findViewById(R.id.btn);
holder.txtv = (TextView) convertView.findViewById(R.id.txt);
convertView.setTag(holder);
holder.name.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
CheckBox cb = (CheckBox) v;
checkTable country = (checkTable) cb.getTag();
country.setSelected(cb.isChecked());
}
});
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.btnnn.setOnClickListener(new OnClickListener() {
int counter = 0;
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
counter++;
holder.txtv.setText(String.valueOf(counter));
}
});
checkTable checkTable = itemsList.get(position);
holder.code.setText(" (" + checkTable.getitemprice() + ")");
holder.name.setText(checkTable.getitemname());
holder.name.setChecked(checkTable.isSelected());
holder.name.setTag(checkTable);
return convertView;
}
}
, когда я делаю holder.txtv.setText(String.valueOf(counter));
так показать мне ошибку Cannot refer to the non-final local variable holder defined in an enclosing scope
предложить мне, как я могу решить эту проблему.
переменный держатель ** должен быть окончательным. ** Анонимный класс не может получить доступ к локальным переменным в своей охватывающей области, которые не объявлены окончательными или фактически окончательными. ** https://docs.oracle.com/javase/tutorial/java/javaOO/anonymousclasses.html – Raghunandan
Название также немного вводит в заблуждение. Проблема не в основном в отношении шаблона держателя. Речь идет о том, как переменные используются в анонимном классе. – FlanschiFox
Примите ответ, если все готово. Счастливое кодирование. :) – FlanschiFox