Java 设置值;从头开始
如果我单击按钮Java 设置值;从头开始,java,android,android-studio,arraylist,Java,Android,Android Studio,Arraylist,如果我单击按钮CHECKOUT,将显示一个弹出窗口。在此弹出窗口中,您有机会中止事务。因此,如果您中止事务,则项目(法国火、水、汉堡)的所有值应再次为0,如下图所示。现在,当我中止事务时,这些值保持我以前配置它们的方式。你能帮我吗 OrderActivity.java package com.nfc.netvision; import androidx.appcompat.app.AppCompatActivity; import androidx.recyclerview.widget.L
CHECKOUT
,将显示一个弹出窗口。在此弹出窗口中,您有机会中止事务。因此,如果您中止事务,则项目(法国火、水、汉堡)的所有值应再次为0,如下图所示。现在,当我中止事务时,这些值保持我以前配置它们的方式。你能帮我吗
OrderActivity.java
package com.nfc.netvision;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import android.app.Dialog;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import com.google.firebase.auth.FirebaseAuth;
import java.text.NumberFormat;
import java.util.ArrayList;
import java.util.Locale;
import static android.widget.Toast.*;
public class OrderActivity extends AppCompatActivity implements OrderAdapter.TotalListener {
RecyclerView recyclerView;
ArrayList<ModelOrder> orderArrayList;
TextView textView_order_price;
TextView textView_order_count;
Dialog epicDialog;
Button btnCheckout;
Button btnAbort;
@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));
orderArrayList.add(new ModelOrder(R.drawable.fastfood, "Pommes", "Fritten für die Titten.", "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", "Ach mir fällt nichts ein.", "10",0));
LinearLayoutManager layoutManager = new LinearLayoutManager(this);
RecyclerView.LayoutManager recLiLayoutManager = layoutManager;
recyclerView.setLayoutManager(recLiLayoutManager);
OrderAdapter adapter = new OrderAdapter(this, orderArrayList, this);
recyclerView.setAdapter(adapter);
epicDialog = new Dialog(this);
btnCheckout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showWaitingPopUp();
}
});
}
private void showWaitingPopUp() {
epicDialog.setContentView(R.layout.order_popup_waiting);
epicDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
btnAbort = (Button) epicDialog.findViewById(R.id.btnAbort);
btnAbort.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
epicDialog.dismiss();
}
});
epicDialog.show();
}
@Override
public void onTotalChanged(String result) {
NumberFormat n = NumberFormat.getCurrencyInstance(Locale.GERMANY);
textView_order_price.setText( n.format(Integer.parseInt(result)));
}
@Override
public void onCountChanged(String result) {
textView_order_count.setText(result);
}
}
package com.nfc.netvision;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import org.w3c.dom.Text;
import java.text.NumberFormat;
import java.util.ArrayList;
import java.util.Locale;
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, TotalListener listener) {
mContext = context;
nList = list;
this.listener = listener;
}
@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_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);
}
}
});
}
@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+ "");
}
}
package com.nfc.netvision;
导入androidx.appcompat.app.appcompat活动;
导入androidx.recyclerview.widget.LinearLayoutManager;
导入androidx.recyclerview.widget.recyclerview;
导入android.app.Dialog;
导入android.graphics.Color;
导入android.graphics.drawable.ColorDrawable;
导入android.os.Bundle;
导入android.view.view;
导入android.widget.Button;
导入android.widget.TextView;
导入android.widget.Toast;
导入com.google.firebase.auth.FirebaseAuth;
导入java.text.NumberFormat;
导入java.util.ArrayList;
导入java.util.Locale;
导入静态android.widget.Toast.*;
公共类OrderActivity扩展AppCompatActivity实现OrderAdapter.TotalListener{
回收视图回收视图;
ArrayList orderArrayList;
text查看text查看订单\价格;
text查看text查看订单数量;
对话与对话;
按钮btnCheckout;
按钮btnAbort;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_order);
recyclerView=findViewById(R.id.recyclerView\u order\u scroll);
textView\u order\u price=findviewbyd(R.id.textView\u order\u price);
textView\u order\u count=findviewbyd(R.id.textView\u order\u count);
btnCheckout=(按钮)findViewById(R.id.btnCheckout);
orderArrayList=新建ArrayList();
orderArrayList.add(新型号订单(R.drawable.coke,“Coka Cola”,“Eine Cola hält dich wach and schmeckt dazu.”,“3”,0));
orderArrayList.add(新模式订单(R.drawable.fastfood,“Pommes”,“Friten füR die Titten.”,“5”,0));
添加(新模型订单(R.drawable.water,“Wasser”,“Still und sanft,so mag ich es.”,“5”,0));
orderArrayList.add(新模型Order(R.dravable.burger,“burger”,“Ach mir fällt nichts ein.”,“10”,0));
LinearLayoutManager layoutManager=新的LinearLayoutManager(此);
RecyclerView.LayoutManager recilayoutmanager=LayoutManager;
recyclerView.setLayoutManager(RecilayoutManager);
OrderAdapter=新的OrderAdapter(this,orderArrayList,this);
recyclerView.setAdapter(适配器);
epicDialog=新建对话框(此);
btnCheckout.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
showWaitingPopUp();
}
});
}
私有void showWaitingPopUp(){
epicDialog.setContentView(R.layout.order\u popup\u waiting);
epicDialog.getWindow().setBackgroundDrawable(新的ColorDrawable(Color.TRANSPARENT));
btnAbort=(按钮)epicDialog.findViewById(R.id.btnAbort);
btnAbort.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
epicDialog.disclose();
}
});
epicDialog.show();
}
@凌驾
已更改公共void(字符串结果){
NumberFormat n=NumberFormat.getCurrencyInstance(Locale.GERMANY);
textView_order_price.setText(n.format(Integer.parseInt(result));
}
@凌驾
公共void onCountChanged(字符串结果){
textView\u order\u count.setText(结果);
}
}
OrderAdapter.java
package com.nfc.netvision;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import android.app.Dialog;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import com.google.firebase.auth.FirebaseAuth;
import java.text.NumberFormat;
import java.util.ArrayList;
import java.util.Locale;
import static android.widget.Toast.*;
public class OrderActivity extends AppCompatActivity implements OrderAdapter.TotalListener {
RecyclerView recyclerView;
ArrayList<ModelOrder> orderArrayList;
TextView textView_order_price;
TextView textView_order_count;
Dialog epicDialog;
Button btnCheckout;
Button btnAbort;
@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));
orderArrayList.add(new ModelOrder(R.drawable.fastfood, "Pommes", "Fritten für die Titten.", "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", "Ach mir fällt nichts ein.", "10",0));
LinearLayoutManager layoutManager = new LinearLayoutManager(this);
RecyclerView.LayoutManager recLiLayoutManager = layoutManager;
recyclerView.setLayoutManager(recLiLayoutManager);
OrderAdapter adapter = new OrderAdapter(this, orderArrayList, this);
recyclerView.setAdapter(adapter);
epicDialog = new Dialog(this);
btnCheckout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showWaitingPopUp();
}
});
}
private void showWaitingPopUp() {
epicDialog.setContentView(R.layout.order_popup_waiting);
epicDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
btnAbort = (Button) epicDialog.findViewById(R.id.btnAbort);
btnAbort.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
epicDialog.dismiss();
}
});
epicDialog.show();
}
@Override
public void onTotalChanged(String result) {
NumberFormat n = NumberFormat.getCurrencyInstance(Locale.GERMANY);
textView_order_price.setText( n.format(Integer.parseInt(result)));
}
@Override
public void onCountChanged(String result) {
textView_order_count.setText(result);
}
}
package com.nfc.netvision;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import org.w3c.dom.Text;
import java.text.NumberFormat;
import java.util.ArrayList;
import java.util.Locale;
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, TotalListener listener) {
mContext = context;
nList = list;
this.listener = listener;
}
@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_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);
}
}
});
}
@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+ "");
}
}
package com.nfc.netvision;
导入android.content.Context;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.ImageView;
导入android.widget.TextView;
导入androidx.annotation.NonNull;
导入androidx.recyclerview.widget.recyclerview;
导入org.w3c.dom.Text;
导入java.text.NumberFormat;
导入java.util.ArrayList;
导入java.util.Locale;
公共类OrderAdapter扩展了RecyclerView.Adapter{
私人总金额;
私人物品;
私有上下文;
私有数组列表;
私人监听者;
接口侦听器{
void onTotalChanged(字符串结果);
void onCountChanged(字符串结果);
}
OrderAdapter(上下文上下文、ArrayList列表、TotalListener侦听器){
mContext=上下文;
nList=列表;
this.listener=listener;
}
@非空
@凌驾
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent,int viewType){
LayoutInflater LayoutInflater=LayoutInflater.from(mContext);
视图=LayoutFlater.充气(R.layout.recyclerview\u order\u items,父项,false);
ViewHolder ViewHolder=新的ViewHolder(视图);
返回视图持有者;
}
@凌驾
public void onBindViewHolder(@NonNull final ViewHolder,int位置){
final ModelOrder orderItem=nList.get(位置);
ImageView image=holder.item\u image;
最终文本视图名称、地点、价格;
名称=持有人。项目名称;
地点=持有人。项目\地点;
价格=持有人。项目价格;
setImageResource(orderItem.getImage());
name.setText(orderItem.getName());
setText(orderItem.getPlace());
price.setText(orderItem.getPrice());
holder.order\u item\u减.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
if(orderItem.getCounter()>0){
orderItem.setCounter(orderItem.getCounter()-1);
holder.order\u item\u count.setText(“+orderItem.getCounter());
calculatePrice(Integer.parseInt((String)price.getText()),false);
OrderAdapter adapter = new OrderAdapter(this, orderArrayList, this);
OrderAdapter adapter = new OrderAdapter(this, orderArrayList);
OrderAdapter(Context context, ArrayList<ModelOrder> list) {
mContext = context;
nList = list;
// You can simply cast the context to the listener
listener = (TotalListener) context;
}