У меня есть счетчик с параметрами {"0", "1", "2", "3"} в каждой строке элемента списка при выборе любого числа, например, "2", счетчик сбрасывается к значению по умолчанию "0" после прокрутки вниз - я знаю, что есть похожий вопрос - здесь -> [ Значение сброса счетчика при прокрутке в настраиваемом просмотре списка с ArrayAdapter ], но ответ совсем не понятен для человека - любой ответ с примером кода будет будь благодарен - заранее спасибо
public class ProductAdapter extends BaseAdapter {
private Context context;
private int layout;
private List<ProductModel> productList;
// constructor
public ProductAdapter (Context context, int layout,List<ProductModel> productList){
this.context = context;
this.layout= layout;
this.productList= productList;
}
@Override
public int getCount() {
return productList.size();
}
@Override
public Object getItem(int position) {
return productList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
//########################################
private class ViewHolder {
Spinner spn;
TextView itm_prc;
}
//#########################################
String[] mArray = new String[] { "0", "1", "2", "3" };
public View getView(final int position, View convertView, ViewGroup parent) {
View row = convertView;
ViewHolder holder = new ViewHolder();
if (row == null) {
LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (inflater != null) {
row = inflater.inflate(layout, null);
}
if (row != null) {
holder.spn = row.findViewById(R.id.spn1);
holder.itm_prc = row.findViewById(R.id.txt);
row.setTag(holder);
}
} else {
holder = (ViewHolder) row.getTag();
}
final ProductModel productModel= productList.get(position);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(context,
android.R.layout.simple_spinner_item, mArray);
holder.spn.setAdapter(adapter);
holder.itm_prc.setText(productModel.getItem_price());
return row;
}
}