問題があります。増加ボタンをクリックすると、アイテム数も増加します。デクリメントボタンをクリックすると、同じ結果が得られます。私はArrayList<>
を宣言するのはここです:私はRecyclerView
を整理するところRecyclerView内のインクリメントとデクリメント
public class MyAdapter extends RecyclerView.Adapter<MyHolder> {
public static Context c;
int quantity=0;
public static int qty,cty,mty=0,qty1;
public static int sendcost;
public static String curry;
MyHolder holder;
public ArrayList<Integer> quantity1 = new ArrayList<Integer>();
private List<Spacecraft> spacecrafts = new ArrayList<>();
CustomButtonListener customButtonListener;
private boolean mShowQuantity;
public MyAdapter(Context c, ArrayList<Spacecraft> spacecrafts, boolean showQuantity) {//ArrayList<ShoppingCartEntry> showQuantity , boolean showQuantity
MyAdapter.c = c;
this.spacecrafts = spacecrafts;
this.mShowQuantity = showQuantity;
for(int i =0; i< spacecrafts.size();i++)
{
quantity1.add(0);
//quantity[i]=0;
}
}
これは、次のとおりです。ここで
@Override
public MyHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.model, parent, false);
return new MyHolder(v);
}
@Override
public void onBindViewHolder(final MyHolder holder, final int position) {
final Spacecraft s = spacecrafts.get(position);
holder.nameTxt.setText(s.getName());
PicassoClient.downloadImage(c, s.getImageUrl(), holder.img);
holder.propellentTxt.setText(s.getPropellant());
holder.descTxt.setText(s.getDescription());
holder.carbohydratesTxt.setText(s.getCarbohydrates());
holder.fatcontentTxt.setText(s.getFatcontent());
holder.minaralsTxt.setText(s.getMinarals());
holder.costTxt.setText("" + s.getCost());
holder.rateTxt.getText().toString();
try{
holder.rateTxt.setText(quantity1.get(position)+"");
}catch(Exception e){
e.printStackTrace();
}
MyHolder.btn_plus.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
quantity = Integer.parseInt(holder.rateTxt.getText().toString());
cty = Integer.parseInt(holder.costTxt.getText().toString());
curry =holder.nameTxt.getText().toString();
qty1 = 1;
quantity = quantity + 1;
holder.rateTxt.setText(String.valueOf(quantity));//quantity
sendcost = quantity * cty;//single item cost
mty = mty + cty * qty1;// Total Cost
MainActivity.Totalcost.setText("Total cost :" + String.valueOf(mty));
ShoppingCartHelper.setQuantity(s, quantity);
}
});
は私の減少ボタンです:
MyHolder.btn_minus.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v1) {
qty1=1;
quantity = Integer.parseInt(holder.rateTxt.getText().toString());
cty = Integer.parseInt(holder.costTxt.getText().toString());
if(quantity == 0)
{
}
else
{
quantity = quantity - 1;
holder.rateTxt.setText(String.valueOf(quantity));
mty =mty - cty*qty1;
MainActivity.Totalcost.setText("Total cost :" + String.valueOf(mty));
ShoppingCartHelper.setQuantity(s, quantity);
}
}
});
holder.quan.setVisibility(View.GONE);
return;
}
@Override
public int getItemCount() {
return spacecrafts.size();
}
}
にする方法上の任意の提案ボタンの仕事を減らす?
数量を増減するたびにarraylistを更新する必要があります。そして、リスト呼び出しを更新した後、notifyDataSetChanged(); –
ありがとうございます。私はアンドロイドに新しいのでいくつかのコードを追加してください.... –
quantity1.set(position、quantity); notifyDataSetChanged(); –