Commit 62795956 authored by Trio Saputra's avatar Trio Saputra

cart edited

parent 7c5ad26a
...@@ -7,22 +7,107 @@ import android.os.Bundle; ...@@ -7,22 +7,107 @@ import android.os.Bundle;
import android.view.View; import android.view.View;
import android.widget.Button; import android.widget.Button;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.TextView;
import com.example.yourcashiertest.R; import com.example.yourcashiertest.R;
import com.example.yourcashiertest.databinding.ActivityCartBinding;
import com.example.yourcashiertest.databinding.ItemListBinding;
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
public class CartActivity extends AppCompatActivity { public class CartActivity extends AppCompatActivity {
ImageView btnBack; ImageView btnBack;
ActivityCartBinding binding;
TextView tvName, tvTotalPrice, tvQty, tvPrice, tvItems;
Button btnAdd, btnMin;
int count = 1;
int pricePerQty;
int totalPrice;
int totalItems;
@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);
btnBack = findViewById(R.id.ivBtnBack); btnBack = findViewById(R.id.ivBtnBack);
tvName = findViewById(R.id.burger_medi);
tvQty = findViewById(R.id.tv_qty);
btnAdd = findViewById(R.id.btn_add);
btnMin = findViewById(R.id.btn_min);
tvPrice = findViewById(R.id.some_id);
tvTotalPrice = findViewById(R.id.tvTotalPrice);
tvItems = findViewById(R.id.items);
int price = 10000;
tvName.setText("Burger KING");
btnAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
count++;
pricePerQty = price * count;
changeOnClick(count, pricePerQty, totalPrice);
}
});
btnMin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
count--;
if (count < 0){
}
pricePerQty = price * count;
changeOnClick(count, pricePerQty, totalPrice);
}
});
btnBack.setOnClickListener(new View.OnClickListener() { btnBack.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View view) { public void onClick(View view) {
startActivity(new Intent(CartActivity.this, MainActivity.class)); startActivity(new Intent(CartActivity.this, MainActivity.class));
} }
}); });
} }
private void alertDialog(String msg){
}
private String changeToCurrency(int totalPrice){
DecimalFormat decimalFormat = (DecimalFormat) DecimalFormat.getCurrencyInstance();
DecimalFormatSymbols formatSymbols = new DecimalFormatSymbols();
formatSymbols.setCurrencySymbol("Rp. ");
formatSymbols.setMonetaryDecimalSeparator(',');
formatSymbols.setGroupingSeparator('.');
String priceRupiah = decimalFormat.format(totalPrice);
return priceRupiah;
}
private void changeOnClick(int count, int pricePerQty, int totalPrice){
tvQty.setText(String.valueOf(count));
tvPrice.setText(changeToCurrency(pricePerQty));
tvTotalPrice.setText(changeToCurrency(totalPrice));
}
} }
\ No newline at end of file
package com.example.yourcashiertest.adapters;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.databinding.DataBindingUtil;
import androidx.recyclerview.widget.RecyclerView;
import com.example.yourcashiertest.R;
import com.example.yourcashiertest.databinding.CartItemBinding;
import com.example.yourcashiertest.entities.Product;
import java.util.ArrayList;
import java.util.List;
public class CartAdapter extends RecyclerView.Adapter<CartAdapter.ViewHolder> {
private List<Product> productList = new ArrayList<>();
public interface Listener{
void onIncrease();
void onDecrease();
}
public Listener listener;
public CartAdapter(List<Product> productList) {
this.productList = productList;
notifyDataSetChanged();
}
@NonNull
@Override
public CartAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
return new CartAdapter.ViewHolder(
DataBindingUtil.inflate(
LayoutInflater.from(parent.getContext()),
R.layout.cart_item,
parent,
false
)
);
}
@Override
public void onBindViewHolder(@NonNull CartAdapter.ViewHolder holder, int position) {
holder.bindData(productList.get(position));
}
@Override
public int getItemCount() {
return productList.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
private CartItemBinding cartItemBinding;
private int price = 10000;
public ViewHolder(@NonNull CartItemBinding cartItemBinding) {
super(cartItemBinding.getRoot());
this.cartItemBinding = cartItemBinding;
}
public void bindData(Product product) {
cartItemBinding.setCartProduct(product);
cartItemBinding.btnAdd.setOnClickListener(view -> listener.onIncrease());
cartItemBinding.btnMin.setOnClickListener(view -> listener.onDecrease());
}
}
}
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" <layout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
>
<data>
<variable
name="totalPrice"
type="String" />
<variable
name="totalItems"
type="String" />
</data>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:padding="10dp" android:padding="10dp"
...@@ -34,35 +46,35 @@ ...@@ -34,35 +46,35 @@
<TextView <TextView
android:id="@+id/items" android:id="@+id/items"
android:layout_width="68dp" android:layout_width="60dp"
android:layout_height="21dp" android:layout_height="21dp"
android:layout_marginStart="32dp" android:layout_marginStart="50dp"
android:gravity="top" android:gravity="top"
android:text="@string/items" android:text=""
android:textAppearance="@style/items"
app:layout_constraintBottom_toBottomOf="@+id/cart" app:layout_constraintBottom_toBottomOf="@+id/cart"
app:layout_constraintStart_toEndOf="@+id/cart" app:layout_constraintStart_toEndOf="@+id/cart"
app:layout_constraintEnd_toStartOf="@+id/amount"
app:layout_constraintTop_toTopOf="@+id/cart" app:layout_constraintTop_toTopOf="@+id/cart"
app:layout_constraintVertical_bias="0.466" /> app:layout_constraintVertical_bias="0.466" />
<View <View
android:id="@+id/amount" android:id="@+id/amount"
android:layout_width="112dp" android:layout_width="100dp"
android:layout_height="59dp" android:layout_height="35dp"
android:background="@drawable/rectangle_1" android:background="@drawable/rectangle_1"
app:layout_constraintBottom_toBottomOf="@+id/items"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.666" android:layout_marginTop="65dp"
android:layout_marginEnd="40dp"
app:layout_constraintStart_toEndOf="@+id/items" app:layout_constraintStart_toEndOf="@+id/items"
app:layout_constraintTop_toTopOf="@+id/items" /> app:layout_constraintTop_toTopOf="parent" />
<TextView <TextView
android:id="@+id/some_id" android:id="@+id/tvTotalPrice"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="20dp" android:layout_height="20dp"
android:gravity="top" android:gravity="top"
android:textColor="#fff" android:textColor="#fff"
android:text="@string/some_id" android:text=""
android:textAppearance="@style/some_id" android:textAppearance="@style/some_id"
app:layout_constraintBottom_toBottomOf="@+id/amount" app:layout_constraintBottom_toBottomOf="@+id/amount"
app:layout_constraintEnd_toEndOf="@+id/amount" app:layout_constraintEnd_toEndOf="@+id/amount"
...@@ -80,14 +92,15 @@ ...@@ -80,14 +92,15 @@
tools:layout_editor_absoluteX="9dp" /> tools:layout_editor_absoluteX="9dp" />
<include <include
android:id="@+id/include" android:id="@+id/rvCartList"
layout="@layout/cart_item" layout="@layout/cart_item"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent" android:layout_marginTop="@dimen/space_default"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/view" app:layout_constraintTop_toBottomOf="@+id/view"
app:layout_constraintVertical_bias="0.071" /> />
<Button <Button
android:id="@+id/button" android:id="@+id/button"
...@@ -95,9 +108,10 @@ ...@@ -95,9 +108,10 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/checkout" android:text="@string/checkout"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@+id/include" app:layout_constraintTop_toBottomOf="@+id/rvCartList"
app:layout_constraintVertical_bias="1.0" app:layout_constraintVertical_bias="1.0"
tools:layout_editor_absoluteX="39dp" /> tools:layout_editor_absoluteX="39dp" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file </layout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<com.google.android.material.card.MaterialCardView <layout
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools">
<data>
<variable
name="cartProduct"
type="com.example.yourcashiertest.entities.Product" />
<variable
name="qty"
type="String" />
</data>
<com.google.android.material.card.MaterialCardView
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent">
...@@ -48,7 +58,8 @@ ...@@ -48,7 +58,8 @@
android:layout_alignParentLeft="true" android:layout_alignParentLeft="true"
android:layout_alignParentTop="true" android:layout_alignParentTop="true"
android:gravity="top" android:gravity="top"
android:text="@string/some_id" android:text=""
tools:text="$6000"
android:textAppearance="@style/some_id" android:textAppearance="@style/some_id"
app:layout_constraintBottom_toBottomOf="@+id/imageView" app:layout_constraintBottom_toBottomOf="@+id/imageView"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
...@@ -67,6 +78,7 @@ ...@@ -67,6 +78,7 @@
app:layout_constraintBottom_toBottomOf="@+id/some_id" app:layout_constraintBottom_toBottomOf="@+id/some_id"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="1.0" app:layout_constraintHorizontal_bias="1.0"
android:layout_marginEnd="@dimen/space_default"
app:layout_constraintStart_toEndOf="@+id/some_id" app:layout_constraintStart_toEndOf="@+id/some_id"
app:layout_constraintTop_toTopOf="@+id/some_id" app:layout_constraintTop_toTopOf="@+id/some_id"
app:layout_constraintVertical_bias="1.0" /> app:layout_constraintVertical_bias="1.0" />
...@@ -97,7 +109,8 @@ ...@@ -97,7 +109,8 @@
android:id="@+id/tv_qty" android:id="@+id/tv_qty"
android:layout_width="10dp" android:layout_width="10dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="2" android:text="@{qty}"
tools:text="4"
app:layout_constraintBottom_toBottomOf="@+id/v_add" app:layout_constraintBottom_toBottomOf="@+id/v_add"
app:layout_constraintEnd_toStartOf="@+id/btn_add" app:layout_constraintEnd_toStartOf="@+id/btn_add"
app:layout_constraintStart_toEndOf="@+id/btn_min" app:layout_constraintStart_toEndOf="@+id/btn_min"
...@@ -114,4 +127,5 @@ ...@@ -114,4 +127,5 @@
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
</com.google.android.material.card.MaterialCardView> </com.google.android.material.card.MaterialCardView>
\ No newline at end of file </layout>
\ No newline at end of file
...@@ -29,7 +29,7 @@ ...@@ -29,7 +29,7 @@
<style name="some_id"> <style name="some_id">
<item name="android:textSize"> <item name="android:textSize">
16sp 13sp
</item> </item>
<item name="android:textColor"> <item name="android:textColor">
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment