Значение сброса счетчика при прокрутке в пользовательском просмотре списка с помощью ArrayAdapter

Я новичок в Android .... Мне нужна ваша помощь.

В моем приложении я создал список с использованием собственного адаптера и пользовательского макета строки. Я преуспел в этом и Я добавил одно изображение, текстовое представление и выпадающее меню во всех строках. В выпадающем списке есть количество элементов (от 0 до 9, например.)

Но моя проблема в том, что когда я выбираю выпадающий список и устанавливаю какое-то значение, при прокрутке списка счетчик сбрасывает себя к исходному значению (здесь 0). Я использую строку значений от 0 до 9 для Spinner.

Что я могу сделать, чтобы избежать этой проблемы? Любая помощь будет принята с благодарностью .... Заранее спасибо.

//This is my custom adapter code....

public class MyProductsArrayAdapter extends ArrayAdapter {
Context context;
int resourceId;

Products data[] = null;

public MyProductsArrayAdapter(Context context, int resourceId,
        Products data[]) {
    super(context, resourceId, data);
    this.context = context;
    this.resourceId = resourceId;

    this.data = data;
}

static class ProductsItemViewHolder {

    ImageView image;
    TextView name;
    Spinner number;
}

String[] mArray = new String[] { "0", "1", "2", "3", "4", "5", "6", "7",

        "8", "9" };

public View getView(final int position, View convertView, ViewGroup parent) {
    View rowView = convertView;
    ProductsItemViewHolder holder = null;

    LayoutInflater mInflater = (LayoutInflater) context

            .getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
    if (rowView == null) {

        rowView = mInflater.inflate(R.layout.main2, parent, false);
        holder = new ProductsItemViewHolder();
        holder.image = (ImageView) rowView.findViewById(R.id.item_icon);

        holder.name = (TextView) rowView.findViewById(R.id.tvListItemText);
        holder.number = (Spinner) rowView.findViewById(R.id.NumberSpinner);

        rowView.setTag(holder);

    } else {


        holder = (ProductsItemViewHolder) rowView.getTag();
    }

    Products f = data[position];
    holder.image.setImageResource(f.itemIcon);
    holder.name.setText(f.itemName);

    ArrayAdapter adapter = new ArrayAdapter(context,

            android.R.layout.simple_spinner_item, mArray);

    holder.number.setAdapter(adapter);

    return rowView;

}
}

// А вот мой код row_layout











Ответы на вопрос(2)

Ваш ответ на вопрос