Я знаю, что об этом спрашивали несколько раз, но я не совсем понимаю. У меня есть адаптер, и для каждого предмета мне нужно настроить счетчик. Для контекста, я работаю над своего рода приложением по продаже товаров. Таким образом, адаптер заполнен продуктами из продажи, и у счетчика должно быть столько же вариантов, сколько у продукта в этой продаже, что в моем коде является величиной количества.
Вот мой код адаптера
public class MoneyDevolutionAdapter extends RecyclerView.Adapter < MoneyDevolutionAdapter.SaleDetailsViewHolder > implements View.OnClickListener {
private List < SaleDetail > saleDetailList;
private View.OnClickListener listener;
private List < Integer > quantityList;
public MoneyDevolutionAdapter(List < SaleDetail > saleDetailList) {
this.saleDetailList = saleDetailList;
}
@NonNull
@Override
public MoneyDevolutionAdapter.SaleDetailsViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.adapter_money_devolution, viewGroup, false);
v.setOnClickListener(this);
return new MoneyDevolutionAdapter.SaleDetailsViewHolder(v);
}
@Override
public void onBindViewHolder(@NonNull MoneyDevolutionAdapter.SaleDetailsViewHolder saleDetailsViewHolder, int i) {
Product product = new Product().findProductById(saleDetailList.get(i).idProduct);
if (product != null) {
saleDetailsViewHolder.txtNameSaleDetailsAdapter.setVisibility(View.VISIBLE);
saleDetailsViewHolder.txtNameSaleDetailsAdapter.setText("" + product.nameProduct);
}
saleDetailsViewHolder.txtIdSaleDetailsAdapter.setText("" + saleDetailList.get(i).idProduct);
saleDetailsViewHolder.txtQuantitySaleDetailsAdapter.setText("" + saleDetailList.get(i).quantity);
saleDetailsViewHolder.txtSVSaleDetailsAdapter.setText("" + Tools.setDecimalFormat().format(saleDetailList.get(i).unitValue));
saleDetailsViewHolder.txtValuetotSaleDetailsAdapter.setText("" + Tools.setDecimalFormat().format(saleDetailList.get(i).totValue));
}
@Override
public int getItemCount() {
return saleDetailList.size();
}
public void setOnClickListener(View.OnClickListener listener) {
this.listener = listener;
}
@Override
public void onClick(View v) {
if (listener != null) {
listener.onClick(v);
}
}
static class SaleDetailsViewHolder extends RecyclerView.ViewHolder {
TextView txtNameSaleDetailsAdapter;
TextView txtIdSaleDetailsAdapter;
TextView txtQuantitySaleDetailsAdapter;
TextView txtSVSaleDetailsAdapter;
TextView txtValuetotSaleDetailsAdapter;
Spinner spnQuantityProduct;
SaleDetailsViewHolder(View itemView) {
super(itemView);
txtNameSaleDetailsAdapter = itemView.findViewById(R.id.txtNameSaleDetailsAdapter);
txtIdSaleDetailsAdapter = itemView.findViewById(R.id.txtIdSaleDetailsAdapter);
txtQuantitySaleDetailsAdapter = itemView.findViewById(R.id.txtQuantitySaleDetailsAdapter);
txtSVSaleDetailsAdapter = itemView.findViewById(R.id.txtSVSaleDetailsAdapter);
txtValuetotSaleDetailsAdapter = itemView.findViewById(R.id.txtValuetotSaleDetailsAdapter);
spnQuantityProduct = itemView.findViewById(R.id.spnQuantityProducttoDevolution);
}
}
}
Любая помощь или предложения о том, как подойти к созданию сппинера внутри карты, было бы здорово, спасибо!