Poprawiona klasa Cart

This commit is contained in:
PawelZielinski 2021-02-07 21:16:10 +01:00
parent 4474519d08
commit 998bc1f5b0
10 changed files with 214 additions and 43 deletions

6
.idea/vcs.xml Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

View File

@ -2,25 +2,17 @@ package com.example.pizzujemyv3;
import java.util.ArrayList; import java.util.ArrayList;
public class Cart { public class Cart {
private Pizza pizza;
public ArrayList<Pizza> cartLista; public ArrayList<Pizza> cartLista;
private int sum; private int totalPrice;
public Cart(ArrayList<Pizza> menuList){
public Cart(){
setCartLista(menuList);
} }
public void setCartLista(ArrayList<Pizza> menuList)
public void setCartLista(ArrayList<Pizza> menuLista)
{ {
menuLista.forEach((pizza) -> addToCart(getPizza())); menuList.forEach((pizza) -> addToCart(pizza));
} }
public void addToCart(Pizza pizza){ public void addToCart(Pizza pizza){
if(pizza.getOnOrder()>0) if(pizza.getOnOrder()>0)
{ {
@ -29,15 +21,11 @@ public class Cart {
} }
public void setSum() public void setTotalPrice()
{ {
cartLista.forEach(pizza -> sum+= pizza.getPrice()); cartLista.forEach(pizza -> totalPrice+= pizza.getSumPrice());
} }
public int getSum(){return sum;} public int getTotalPrice(){return totalPrice;}
public Pizza getPizza() {
return pizza;
}
} }

View File

@ -1,37 +1,57 @@
package com.example.pizzujemyv3; package com.example.pizzujemyv3;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity; import android.support.v7.app.AppCompatActivity;
import android.os.Bundle; import android.os.Bundle;
import android.view.View; import android.view.View;
import android.widget.Button; import android.widget.Button;
import android.widget.ListView; import android.widget.ListView;
import android.widget.Switch; import android.widget.Switch;
import android.widget.TextView;
import android.widget.Toast; import android.widget.Toast;
import java.util.ArrayList; import java.util.ArrayList;
public class CartActivity extends AppCompatActivity { public class CartActivity extends AppCompatActivity {
ListView cartListView; ListView cLView;
ArrayList<Pizza> pizzaArrayList; ArrayList<Pizza> pizzaArrayList = new ArrayList<>();
Switch oSwitch; Switch oSwitch;
Button oButton; Button oButton;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setContentView(R.layout.activity_cart); setContentView(R.layout.activity_cart);
cLView = findViewById(R.id.cartListView);
pizzaArrayList.add(new Pizza(1, "Margarita", 24, R.drawable.img1 , "sos pomidorowy\nmozzarella fior di latte"));
pizzaArrayList.add(new Pizza(2, "Marinara", 22, R.drawable.img2, "sos pomidorowy\noregano\nczosnek\nbazylia"));
pizzaArrayList.add(new Pizza(3, "Napoli", 26, R.drawable.img3 , "sos pomidorowy\nmozzarella fior di latte\nsalami napoli"));
pizzaArrayList.add(new Pizza(4, "Parma", 26, R.drawable.img4 ,"sos pomidorowy\nmozzarella fior di latte\ncebula czerwona\nszynka parmenska"));
pizzaArrayList.add(new Pizza(5, "Diavola", 28, R.drawable.img5 ,"sos pomidorowy\nmozzarella fior di latte\ncebula czerwona\nsalami spianata piccante"));
pizzaArrayList.get(3).addOnOrder();
pizzaArrayList.get(1).addOnOrder();
ArrayList<Pizza> cartArrayList = new ArrayList<>();
Cart cart = new Cart(pizzaArrayList);
TextView totalPrice = (TextView)findViewById(R.id.totalPrice);
totalPrice.setText(cart.getTotalPrice());
PizzaAdapter pizzaAdapter = new PizzaAdapter(this,R.layout.list_row,cart.cartLista);
cLView.setAdapter(pizzaAdapter);
/*
cartListView = findViewById(R.id.listView);
pizzaArrayList = new ArrayList<>();
pizzaArrayList = getIntent().getParcelableArrayListExtra("pizzas");
PizzaAdapter pizzaAdapter = new PizzaAdapter(this,R.layout.list_row,pizzaArrayList);
cartListView.setAdapter(pizzaAdapter);
*/
/* cartListView = findViewById(R.id.cartListView);
ArrayList<Pizza> pizzaArrayList = new ArrayList<>();
pizzaArrayList = getIntent().getParcelableArrayListExtra("pizzas");
Bundle bundleObject = getIntent().getExtras(); Cart cart = new Cart(pizzaArrayList);
pizzaArrayList = (ArrayList<Pizza>) bundleObject.getSerializable("pizzas"); PizzaAdapter pizzaAdapter = new PizzaAdapter(this,R.layout.cart_list_row,cart.cartLista);
cartListView.setAdapter(pizzaAdapter);*/
Cart cart = new Cart();
cartListView = findViewById(R.id.cartListView);
cart.setCartLista(pizzaArrayList);
PizzaAdapter cartAdapter = new PizzaAdapter(this,R.layout.cart_list_row,cart.cartLista);
cartListView.setAdapter(cartAdapter);
oButton = findViewById(R.id.zamow); oButton = findViewById(R.id.zamow);
oButton.setOnClickListener(new View.OnClickListener() { oButton.setOnClickListener(new View.OnClickListener() {

View File

@ -0,0 +1,85 @@
package com.example.pizzujemyv3;
import android.content.Context;
import android.os.Parcel;
import android.os.Parcelable;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import java.io.Serializable;
import java.util.ArrayList;
public class CartAdapter extends ArrayAdapter<Pizza> {
private Context mContext;
private int mResource;
public CartAdapter(@NonNull Context context, int resource, @NonNull ArrayList<Pizza> objects) {
super(context, resource, objects);
this.mContext = context;
this.mResource = resource;
}
@NonNull
@Override
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
LayoutInflater layoutInflater = LayoutInflater.from(mContext);
convertView = layoutInflater.inflate(mResource,parent,false);
TextView txtSumPrice = convertView.findViewById(R.id.sumTxtPrice);
TextView addCounter = convertView.findViewById(R.id.addCounter);
ImageView imageView = convertView.findViewById(R.id.image);
TextView txtName = convertView.findViewById(R.id.txtName);
TextView txtPrice = convertView.findViewById(R.id.txtPrice);
TextView txtContent = convertView.findViewById(R.id.txtContent);
Button minButton = convertView.findViewById(R.id.minButton);
Button addButton = convertView.findViewById(R.id.addButton);
imageView.setImageResource(getItem(position).getResID());
addCounter.setText((getItem(position).getStringOnOrder()));
txtName.setText(getItem(position).getName());
txtSumPrice.setText(getItem(position).getStringSumPrice());
txtPrice.setText(getItem(position).getStringPrice());
txtContent.setText(getItem(position).getDes());
minButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
getItem(position).minOnOrder();
addCounter.setText(((getItem(position).getStringOnOrder())));
}
});
addButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getContext(), "Dodano do koszyka!", Toast.LENGTH_SHORT).show();
getItem(position).addOnOrder();
addCounter.setText((getItem(position).getStringOnOrder()));
}
});
return convertView;
}
}

View File

@ -31,13 +31,14 @@ public class Menu extends AppCompatActivity {
PizzaAdapter pizzaAdapter = new PizzaAdapter(this,R.layout.list_row,arrayList); PizzaAdapter pizzaAdapter = new PizzaAdapter(this,R.layout.list_row,arrayList);
menuListView.setAdapter(pizzaAdapter); menuListView.setAdapter(pizzaAdapter);
cartButton = findViewById(R.id.cart); cartButton = findViewById(R.id.cart);
cartButton.setOnClickListener(new View.OnClickListener() { cartButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) { public void onClick(View v) {
Intent intent = new Intent(Menu.this, CartActivity.class); Intent intent = new Intent(Menu.this, CartActivity.class);
Bundle bundle = new Bundle(); intent.putParcelableArrayListExtra("pizzas",arrayList);
bundle.putSerializable("pizzas",arrayList);
intent.putExtras(bundle);
startActivity(intent); startActivity(intent);
}; };
}); });

View File

@ -1,8 +1,11 @@
package com.example.pizzujemyv3; package com.example.pizzujemyv3;
import android.os.Parcel;
import android.os.Parcelable;
import java.io.Serializable; import java.io.Serializable;
public class Pizza implements Serializable{ public class Pizza implements Parcelable {
private int id; private int id;
private String name; private String name;
private int price; private int price;
@ -21,6 +24,29 @@ public class Pizza implements Serializable{
} }
protected Pizza(Parcel in) {
id = in.readInt();
name = in.readString();
price = in.readInt();
resID = in.readInt();
des = in.readString();
onOrder = in.readInt();
sumPrice = in.readInt();
}
@SuppressWarnings("unused")
public static final Parcelable.Creator<Pizza> CREATOR = new Parcelable.Creator<Pizza>() {
@Override
public Pizza createFromParcel(Parcel in) {
return new Pizza(in);
}
@Override
public Pizza[] newArray(int size) {
return new Pizza[size];
}
};
@Override @Override
public String toString() { public String toString() {
return "Pizza{" + return "Pizza{" +
@ -80,4 +106,20 @@ public class Pizza implements Serializable{
public String getStringOnOrder(){return String.valueOf((onOrder));} public String getStringOnOrder(){return String.valueOf((onOrder));}
public int getSumPrice(){return sumPrice;} public int getSumPrice(){return sumPrice;}
public String getStringSumPrice(){return String.valueOf(sumPrice);} public String getStringSumPrice(){return String.valueOf(sumPrice);}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeInt(id);
dest.writeString(name);
dest.writeInt(price);
dest.writeInt(resID);
dest.writeString(des);
dest.writeInt(onOrder);
dest.writeInt(sumPrice);
}
} }

View File

@ -1,6 +1,8 @@
package com.example.pizzujemyv3; package com.example.pizzujemyv3;
import android.content.Context; import android.content.Context;
import android.os.Parcel;
import android.os.Parcelable;
import android.support.annotation.NonNull; import android.support.annotation.NonNull;
import android.support.annotation.Nullable; import android.support.annotation.Nullable;
import android.view.LayoutInflater; import android.view.LayoutInflater;
@ -15,7 +17,7 @@ import android.widget.Toast;
import java.io.Serializable; import java.io.Serializable;
import java.util.ArrayList; import java.util.ArrayList;
public class PizzaAdapter extends ArrayAdapter<Pizza> implements Serializable { public class PizzaAdapter extends ArrayAdapter<Pizza> {
private Context mContext; private Context mContext;
private int mResource; private int mResource;
public PizzaAdapter(@NonNull Context context, int resource, @NonNull ArrayList<Pizza> objects) { public PizzaAdapter(@NonNull Context context, int resource, @NonNull ArrayList<Pizza> objects) {
@ -32,7 +34,7 @@ public class PizzaAdapter extends ArrayAdapter<Pizza> implements Serializable {
convertView = layoutInflater.inflate(mResource,parent,false); convertView = layoutInflater.inflate(mResource,parent,false);
// TextView txtSumPrice = convertView.findViewById(R.id.sumTxtPrice); TextView txtSumPrice = convertView.findViewById(R.id.sumTxtPrice);
TextView addCounter = convertView.findViewById(R.id.addCounter); TextView addCounter = convertView.findViewById(R.id.addCounter);
@ -53,7 +55,7 @@ public class PizzaAdapter extends ArrayAdapter<Pizza> implements Serializable {
txtName.setText(getItem(position).getName()); txtName.setText(getItem(position).getName());
// txtSumPrice.setText(getItem(position).getStringSumPrice()); txtSumPrice.setText(getItem(position).getStringSumPrice());
txtPrice.setText(getItem(position).getStringPrice()); txtPrice.setText(getItem(position).getStringPrice());
@ -81,5 +83,4 @@ public class PizzaAdapter extends ArrayAdapter<Pizza> implements Serializable {
return convertView; return convertView;
} }
} }

View File

@ -39,15 +39,32 @@
android:textColor = "#ffffff" android:textColor = "#ffffff"
android:divider="#000000" android:divider="#000000"
android:dividerHeight="2dp" android:dividerHeight="2dp"
android:layout_weight="0.1"
> >
</ListView> </ListView>
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="0.9"
android:background="#20FFFFFF"
android:textColor="@color/white"
android:shadowColor="#55000000"
android:shadowDx="6"
android:shadowDy="6"
android:shadowRadius="6"
android:id="@+id/totalPrice"
></TextView>
</LinearLayout> </LinearLayout>
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_weight="1" android:layout_weight="1"
android:orientation="horizontal" > android:orientation="horizontal"
>
<Switch <Switch
android:id="@+id/dowoz" android:id="@+id/dowoz"

View File

@ -98,6 +98,7 @@
android:layout_toRightOf="@id/image" android:layout_toRightOf="@id/image"
android:layout_marginLeft="20dp" android:layout_marginLeft="20dp"
android:id="@+id/sumTxtPrice" android:id="@+id/sumTxtPrice"
android:text="0"
/> />
</RelativeLayout> </RelativeLayout>

View File

@ -89,5 +89,15 @@
android:layout_marginTop="5dp" android:layout_marginTop="5dp"
android:layout_toRightOf="@id/addCounter" android:layout_toRightOf="@id/addCounter"
android:background="@drawable/ic_minus" /> android:background="@drawable/ic_minus" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/addCounter"
android:layout_marginTop="10dp"
android:layout_toRightOf="@id/image"
android:layout_marginLeft="20dp"
android:id="@+id/sumTxtPrice"
android:text="0"
/>
</RelativeLayout> </RelativeLayout>