Метод clearAmount
в OrderActivity
устанавливает Arraylist orderlist
в 0. calcultatePrice
, а также countItems
также должны быть 0. На данный момент текст calculatePrice
и countItems
устанавливается на 0 через setText
, но это только визуализирует 0 на экране. Сама переменная не равна 0 после setText
.
Как я могу сделать так, чтобы две переменные были установлены в 0?
OrderAcitivity
public class OrderActivity extends AppCompatActivity implements OrderAdapter.TotalListener {
private OrderAdapter adapter;
private RecyclerView recyclerView;
private ArrayList<ModelOrder> orderArrayList;
private TextView textView_order_price, textView_order_count;
private Dialog epicDialog;
private Button btnCheckout, btnAbort, btnPaymentAcceptedOK;
// Nfc stuff
private NfcAdapter nfcAdapter;
private PendingIntent pendingIntent;
private IntentFilter writeTagFilters[];
private boolean writeMode, nfcEnabled = false;
private Tag myTag;
private Context context;
private String nfcUserID;
private double amount, currentAccountBalance;
interface RetrievalEventListener<T> {
abstract void onDataRetrieved(T t);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_order);
recyclerView = findViewById(R.id.recyclerview_order_scroll);
textView_order_price = findViewById(R.id.textView_order_price);
textView_order_count = findViewById(R.id.textView_order_count);
btnCheckout = (Button) findViewById(R.id.btnCheckout);
orderArrayList = new ArrayList<>();
//orderArrayList.add(new ModelOrder(R.drawable.coke, "Coka Cola", "Eine Cola hält dich wach und schmeckt dazu.", "3",0));
addArticle(this);
orderArrayList.add(new ModelOrder(R.drawable.fastfood, "Pommes", "Die besten Pommes aus Kartoffeln.", "5",0));
orderArrayList.add(new ModelOrder(R.drawable.water, "Wasser", "Still und sanft, so mag ich es.", "5",0));
orderArrayList.add(new ModelOrder(R.drawable.burger, "Burger", "Brot, Salat, Fleisch und Gurken", "10",0));
orderArrayList.add(new ModelOrder(R.drawable.drink, "Smoothi", "Pürierte Früchte.", "7",0));
//orderArrayList.add(new ModelOrder(R.drawable.coke, "Burger", "Ach mir fällt nichts ein.", "10",0));
adapter = new OrderAdapter(this, orderArrayList);
LinearLayoutManager layoutManager = new LinearLayoutManager(this);
RecyclerView.LayoutManager recLiLayoutManager = layoutManager;
recyclerView.setLayoutManager(recLiLayoutManager);
recyclerView.setAdapter(adapter);
epicDialog = new Dialog(this);
}
/**
* Will clear all counters and the amount
*/
private void clearAmount() {
// Set all orders count to 0
for (ModelOrder modelOrder: orderArrayList) {
modelOrder.setCounter(0);
}
// Notify RecyclerView about the changes
adapter.notifyDataSetChanged();
// the value is not really 0
//NumberFormat n = NumberFormat.getCurrencyInstance(Locale.GERMANY);
//textView_order_price.setText( n.format(0));
//textView_order_count.setText(0 + "");
}
OrderAdapter
public class OrderAdapter extends RecyclerView.Adapter<OrderAdapter.ViewHolder> {
private int totalAmount;
private int totalItems;
private Context mContext;
private ArrayList<ModelOrder> nList;
private TotalListener listener;
interface TotalListener{
void onTotalChanged(String result);
void onCountChanged(String result);
}
OrderAdapter(Context context, ArrayList<ModelOrder> list) {
mContext = context;
nList = list;
this.listener = (TotalListener) context;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
LayoutInflater layoutInflater = LayoutInflater.from(mContext);
View view = layoutInflater.inflate(R.layout.recyclerview_order_items, parent, false);
ViewHolder viewHolder = new ViewHolder(view);
return viewHolder;
}
@Override
public void onBindViewHolder(@NonNull final ViewHolder holder, int position) {
final ModelOrder orderItem = nList.get(position);
ImageView image = holder.item_image;
final TextView name, place, price;
name = holder.item_name;
place = holder.item_place;
price = holder.item_price;
image.setImageResource(orderItem.getImage());
name.setText(orderItem.getName());
place.setText(orderItem.getPlace());
price.setText(orderItem.getPrice());
holder.order_item_count.setText(String.valueOf(orderItem.getCounter()));
holder.order_item_minus.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(orderItem.getCounter() > 0) {
orderItem.setCounter(orderItem.getCounter()-1);
holder.order_item_count.setText("" + orderItem.getCounter());
calculatePrice(Integer.parseInt((String) price.getText()), false);
countItems(orderItem.getCounter(), false);
}
}
});
holder.order_item_plus.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(orderItem.getCounter() < 9) {
orderItem.setCounter(orderItem.getCounter() + 1);
holder.order_item_count.setText("" + orderItem.getCounter());
calculatePrice(Integer.parseInt((String) price.getText()), true);
countItems(orderItem.getCounter(), true);
}
}
});
}
public int getTotalPrice() {
return totalAmount;
}
@Override
public int getItemCount() {
return nList.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
ImageView item_image;
TextView item_name, item_place, item_price,order_item_minus,order_item_count, order_item_plus;
public ViewHolder(@NonNull View itemView) {
super(itemView);
item_image = itemView.findViewById(R.id.order_item_image);
item_name = itemView.findViewById(R.id.order_item_name);
item_place = itemView.findViewById(R.id.order_item_place);
item_price = itemView.findViewById(R.id.order_item_price);
order_item_minus = itemView.findViewById(R.id.order_item_minus);
order_item_plus = itemView.findViewById(R.id.order_item_plus);
order_item_count = itemView.findViewById(R.id.order_item_count);
}
}
private void calculatePrice(int pPrice, boolean pUpDown) {
if(pUpDown) {
totalAmount = totalAmount + pPrice;
}
else {
totalAmount = totalAmount - pPrice;
}
listener.onTotalChanged(totalAmount+ "");
}
private void countItems(int pCounter, boolean pUpDown){
if (pUpDown){
totalItems = totalItems + 1;
}
else{
totalItems = totalItems - 1;
}
listener.onCountChanged(totalItems+ "");
}
}