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"
android:layout_width="match_parent" >
android:layout_height="match_parent" <data>
android:padding="10dp" <variable
tools:context=".activities.CartActivity"> name="totalPrice"
type="String" />
<variable
name="totalItems"
type="String" />
</data>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="10dp"
tools:context=".activities.CartActivity">
<ImageView
android:id="@+id/ivBtnBack"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_baseline_arrow_back_ios_24"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.041"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.022" />
<TextView <ImageView
android:id="@+id/cart" android:id="@+id/ivBtnBack"
android:layout_width="134dp" android:layout_width="wrap_content"
android:layout_height="36dp" android:layout_height="wrap_content"
android:gravity="top" android:src="@drawable/ic_baseline_arrow_back_ios_24"
android:text="@string/cart" app:layout_constraintBottom_toBottomOf="parent"
android:textAppearance="@style/cart" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintHorizontal_bias="0.041"
app:layout_constraintStart_toStartOf="@+id/ivBtnBack" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/ivBtnBack" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.061" /> app:layout_constraintVertical_bias="0.022" />
<TextView <TextView
android:id="@+id/items" android:id="@+id/cart"
android:layout_width="68dp" android:layout_width="134dp"
android:layout_height="21dp" android:layout_height="36dp"
android:layout_marginStart="32dp" android:gravity="top"
android:gravity="top" android:text="@string/cart"
android:text="@string/items" android:textAppearance="@style/cart"
android:textAppearance="@style/items" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintBottom_toBottomOf="@+id/cart" app:layout_constraintStart_toStartOf="@+id/ivBtnBack"
app:layout_constraintStart_toEndOf="@+id/cart" app:layout_constraintTop_toBottomOf="@+id/ivBtnBack"
app:layout_constraintTop_toTopOf="@+id/cart" app:layout_constraintVertical_bias="0.061" />
app:layout_constraintVertical_bias="0.466" />
<View <TextView
android:id="@+id/amount" android:id="@+id/items"
android:layout_width="112dp" android:layout_width="60dp"
android:layout_height="59dp" android:layout_height="21dp"
android:background="@drawable/rectangle_1" android:layout_marginStart="50dp"
app:layout_constraintBottom_toBottomOf="@+id/items" android:gravity="top"
app:layout_constraintEnd_toEndOf="parent" android:text=""
app:layout_constraintHorizontal_bias="0.666" app:layout_constraintBottom_toBottomOf="@+id/cart"
app:layout_constraintStart_toEndOf="@+id/items" app:layout_constraintStart_toEndOf="@+id/cart"
app:layout_constraintTop_toTopOf="@+id/items" /> app:layout_constraintEnd_toStartOf="@+id/amount"
app:layout_constraintTop_toTopOf="@+id/cart"
app:layout_constraintVertical_bias="0.466" />
<TextView <View
android:id="@+id/some_id" android:id="@+id/amount"
android:layout_width="wrap_content" android:layout_width="100dp"
android:layout_height="20dp" android:layout_height="35dp"
android:gravity="top" android:background="@drawable/rectangle_1"
android:textColor="#fff" app:layout_constraintEnd_toEndOf="parent"
android:text="@string/some_id" android:layout_marginTop="65dp"
android:textAppearance="@style/some_id" android:layout_marginEnd="40dp"
app:layout_constraintBottom_toBottomOf="@+id/amount" app:layout_constraintStart_toEndOf="@+id/items"
app:layout_constraintEnd_toEndOf="@+id/amount" app:layout_constraintTop_toTopOf="parent" />
app:layout_constraintStart_toStartOf="@+id/amount"
app:layout_constraintTop_toTopOf="@+id/amount" />
<View <TextView
android:id="@+id/view" android:id="@+id/tvTotalPrice"
android:layout_width="match_parent" android:layout_width="wrap_content"
android:layout_height="1dp" android:layout_height="20dp"
android:background="@android:color/darker_gray" android:gravity="top"
app:layout_constraintBottom_toBottomOf="parent" android:textColor="#fff"
app:layout_constraintTop_toBottomOf="@+id/cart" android:text=""
app:layout_constraintVertical_bias="0.089" android:textAppearance="@style/some_id"
tools:layout_editor_absoluteX="9dp" /> app:layout_constraintBottom_toBottomOf="@+id/amount"
app:layout_constraintEnd_toEndOf="@+id/amount"
app:layout_constraintStart_toStartOf="@+id/amount"
app:layout_constraintTop_toTopOf="@+id/amount" />
<include <View
android:id="@+id/include" android:id="@+id/view"
layout="@layout/cart_item" android:layout_width="match_parent"
android:layout_width="match_parent" android:layout_height="1dp"
android:layout_height="wrap_content" android:background="@android:color/darker_gray"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/cart"
app:layout_constraintTop_toBottomOf="@+id/view" app:layout_constraintVertical_bias="0.089"
app:layout_constraintVertical_bias="0.071" /> tools:layout_editor_absoluteX="9dp" />
<Button <include
android:id="@+id/button" android:id="@+id/rvCartList"
android:layout_width="match_parent" layout="@layout/cart_item"
android:layout_height="wrap_content" android:layout_width="match_parent"
android:text="@string/checkout" android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent" android:layout_marginTop="@dimen/space_default"
app:layout_constraintTop_toBottomOf="@+id/include" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintVertical_bias="1.0" app:layout_constraintEnd_toEndOf="parent"
tools:layout_editor_absoluteX="39dp" /> app:layout_constraintTop_toBottomOf="@+id/view"
/>
<Button
android:id="@+id/button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/checkout"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@+id/rvCartList"
app:layout_constraintVertical_bias="1.0"
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">
android:layout_width="match_parent" <data>
android:layout_height="match_parent"> <variable
name="cartProduct"
type="com.example.yourcashiertest.entities.Product" />
<variable
name="qty"
type="String" />
<androidx.constraintlayout.widget.ConstraintLayout </data>
<com.google.android.material.card.MaterialCardView
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="match_parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<!-- Burger Medium -->
<ImageView <!-- Burger Medium -->
android:id="@+id/imageView"
android:layout_width="107dp"
android:layout_height="110dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.003"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.006"
tools:srcCompat="@tools:sample/avatars" />
<TextView <ImageView
android:id="@+id/burger_medi" android:id="@+id/imageView"
android:layout_width="136dp" android:layout_width="107dp"
android:layout_height="41dp" android:layout_height="110dp"
android:layout_alignParentLeft="true" app:layout_constraintBottom_toBottomOf="parent"
android:layout_alignParentTop="true" app:layout_constraintEnd_toEndOf="parent"
android:gravity="top" app:layout_constraintHorizontal_bias="0.003"
android:text="@string/burger_medi" app:layout_constraintStart_toStartOf="parent"
android:textAppearance="@style/burger_medi" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="@+id/imageView" app:layout_constraintVertical_bias="0.006"
app:layout_constraintEnd_toEndOf="parent" tools:srcCompat="@tools:sample/avatars" />
app:layout_constraintHorizontal_bias="0.099"
app:layout_constraintStart_toEndOf="@+id/imageView"
app:layout_constraintTop_toTopOf="@+id/imageView"
app:layout_constraintVertical_bias="0.0" />
<TextView <TextView
android:id="@+id/some_id" android:id="@+id/burger_medi"
android:layout_width="82dp" android:layout_width="136dp"
android:layout_height="23dp" android:layout_height="41dp"
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="@string/burger_medi"
android:textAppearance="@style/some_id" android:textAppearance="@style/burger_medi"
app:layout_constraintBottom_toBottomOf="@+id/imageView" app:layout_constraintBottom_toBottomOf="@+id/imageView"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.106" app:layout_constraintHorizontal_bias="0.099"
app:layout_constraintStart_toEndOf="@+id/imageView" app:layout_constraintStart_toEndOf="@+id/imageView"
app:layout_constraintTop_toBottomOf="@+id/burger_medi" app:layout_constraintTop_toTopOf="@+id/imageView"
app:layout_constraintVertical_bias="1.0" /> app:layout_constraintVertical_bias="0.0" />
<View <TextView
android:id="@+id/v_add" android:id="@+id/some_id"
android:layout_width="78dp" android:layout_width="82dp"
android:layout_height="40dp" android:layout_height="23dp"
android:layout_alignParentLeft="true" android:layout_alignParentLeft="true"
android:layout_alignParentTop="true" android:layout_alignParentTop="true"
android:background="@drawable/rec_qty" android:gravity="top"
app:layout_constraintBottom_toBottomOf="@+id/some_id" android:text=""
app:layout_constraintEnd_toEndOf="parent" tools:text="$6000"
app:layout_constraintHorizontal_bias="1.0" android:textAppearance="@style/some_id"
app:layout_constraintStart_toEndOf="@+id/some_id" app:layout_constraintBottom_toBottomOf="@+id/imageView"
app:layout_constraintTop_toTopOf="@+id/some_id" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintVertical_bias="1.0" /> app:layout_constraintHorizontal_bias="0.106"
app:layout_constraintStart_toEndOf="@+id/imageView"
app:layout_constraintTop_toBottomOf="@+id/burger_medi"
app:layout_constraintVertical_bias="1.0" />
<Button <View
android:id="@+id/btn_min" android:id="@+id/v_add"
android:layout_width="10dp" android:layout_width="78dp"
android:layout_height="10dp" android:layout_height="40dp"
android:layout_marginStart="8dp" android:layout_alignParentLeft="true"
android:background="@drawable/minus" android:layout_alignParentTop="true"
app:layout_constraintBottom_toBottomOf="@+id/v_add" android:background="@drawable/rec_qty"
app:layout_constraintStart_toStartOf="@+id/v_add" app:layout_constraintBottom_toBottomOf="@+id/some_id"
app:layout_constraintTop_toTopOf="@+id/v_add" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintVertical_bias="0.566" /> app:layout_constraintHorizontal_bias="1.0"
android:layout_marginEnd="@dimen/space_default"
app:layout_constraintStart_toEndOf="@+id/some_id"
app:layout_constraintTop_toTopOf="@+id/some_id"
app:layout_constraintVertical_bias="1.0" />
<Button <Button
android:id="@+id/btn_add" android:id="@+id/btn_min"
android:layout_width="10dp" android:layout_width="10dp"
android:layout_height="10dp" android:layout_height="10dp"
android:layout_marginEnd="8dp" android:layout_marginStart="8dp"
android:background="@drawable/plus" android:background="@drawable/minus"
app:layout_constraintBottom_toBottomOf="@+id/v_add" app:layout_constraintBottom_toBottomOf="@+id/v_add"
app:layout_constraintEnd_toEndOf="@+id/v_add" app:layout_constraintStart_toStartOf="@+id/v_add"
app:layout_constraintTop_toTopOf="@+id/v_add" app:layout_constraintTop_toTopOf="@+id/v_add"
app:layout_constraintVertical_bias="0.533" /> app:layout_constraintVertical_bias="0.566" />
<TextView <Button
android:id="@+id/tv_qty" android:id="@+id/btn_add"
android:layout_width="10dp" android:layout_width="10dp"
android:layout_height="wrap_content" android:layout_height="10dp"
android:text="2" android:layout_marginEnd="8dp"
app:layout_constraintBottom_toBottomOf="@+id/v_add" android:background="@drawable/plus"
app:layout_constraintEnd_toStartOf="@+id/btn_add" app:layout_constraintBottom_toBottomOf="@+id/v_add"
app:layout_constraintStart_toEndOf="@+id/btn_min" app:layout_constraintEnd_toEndOf="@+id/v_add"
app:layout_constraintTop_toTopOf="@+id/v_add" /> app:layout_constraintTop_toTopOf="@+id/v_add"
app:layout_constraintVertical_bias="0.533" />
<View <TextView
android:layout_width="match_parent" android:id="@+id/tv_qty"
android:layout_height="1dp" android:layout_width="10dp"
android:layout_marginTop="20dp" android:layout_height="wrap_content"
android:background="@android:color/darker_gray" android:text="@{qty}"
app:layout_constraintBottom_toBottomOf="parent" tools:text="4"
app:layout_constraintTop_toBottomOf="@+id/some_id" app:layout_constraintBottom_toBottomOf="@+id/v_add"
tools:layout_editor_absoluteX="10dp" /> app:layout_constraintEnd_toStartOf="@+id/btn_add"
app:layout_constraintStart_toEndOf="@+id/btn_min"
app:layout_constraintTop_toTopOf="@+id/v_add" />
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginTop="20dp"
android:background="@android:color/darker_gray"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@+id/some_id"
tools:layout_editor_absoluteX="10dp" />
</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