Friday, 9 February 2018

Android Simple Project - Kirana Kart

Screenshots:






string.xml:

<resources>
    <string name="app_name">KiranaKart</string>

</resources>

activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:orientation="vertical"
    tools:context="com.krishanandroid.kiranakart.MainActivity">

    <CheckBox
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Oil"
        android:textSize="18dp"
        android:id="@+id/cbOil"
        android:onClick="checkBoxItemMethod"/>

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Liters: Oil qty"
        android:layout_marginLeft="28dp"
        android:textSize="18dp"
        android:inputType="number"
        android:id="@+id/etOilQty"/>

    <CheckBox
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Rice"
        android:textSize="18dp"
        android:id="@+id/cbRice"
        android:onClick="checkBoxItemMethod"/>

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Kilos: Rice qty"
        android:layout_marginLeft="28dp"
        android:textSize="18dp"
        android:inputType="number"
        android:id="@+id/etRiceQty"/>

    <CheckBox
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Milk"
        android:textSize="18dp"
        android:id="@+id/cbMilk"
        android:onClick="checkBoxItemMethod"/>

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Packets: Milk qty"
        android:layout_marginLeft="28dp"
        android:inputType="number"
        android:textSize="18dp"
        android:id="@+id/etMilkQty"/>

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/button"
        android:text="Checkout"
        android:onClick="checkOutMethod"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Note"
        android:textSize="18dp"
        android:padding="4dp"
        android:textColor="@color/colorAccent"
        android:id="@+id/tvNotes"/>


</LinearLayout>

activity_second.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_second"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:orientation="vertical"
    tools:context="com.krishanandroid.kiranakart.SecondActivity">


    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Summary"
        android:textSize="18dp"
        android:gravity="left"
        android:padding="4dp"
        android:textColor="@color/colorAccent"/>

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/tvItem1"
        android:text="Item1"
        android:textSize="18dp"
        android:gravity="left"
        android:visibility="invisible"
        android:padding="4dp"
        android:textColor="#000000"/>


    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/tvItem2"
        android:text="Item2"
        android:textSize="18dp"
        android:gravity="left"
        android:visibility="invisible"
        android:padding="4dp"
        android:textColor="#000000"/>

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/tvItem3"
        android:text="Item3"
        android:textSize="18dp"
        android:visibility="invisible"
        android:gravity="left"
        android:padding="4dp"
        android:textColor="#000000"/>

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/tvSubTotal"
        android:text="Sub Total: "
        android:textSize="18dp"
        android:gravity="right"
        android:padding="4dp"
        android:textColor="@color/colorAccent"/>

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Offers:"
        android:padding="4dp"
        android:textSize="18dp"
        android:textColor="@color/colorAccent"/>

    <RadioGroup android:layout_height="wrap_content"
        android:layout_width="wrap_content">
          <RadioButton
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:id="@+id/rbPalleCoupon"
              android:text="KALLE COUPON 10/-"
              android:textSize="18dp"
              android:onClick="couponMethod"/>

          <RadioButton
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:id="@+id/rbSkillGunCoupon"
              android:text="TECH COUPON 1%"
              android:textSize="18dp"
              android:onClick="couponMethod"/>
    </RadioGroup>

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Total Price:"
        android:gravity="right"
        android:textSize="18dp"
        android:padding="4dp"
        android:textColor="@color/colorAccent"
        android:id="@+id/tvTotalPrice"/>

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/buttonProceed"
        android:text="Proceed to Pay"
        android:onClick="proceedPayMethod"/>


</LinearLayout>

activity_third.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_second"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:orientation="vertical"
    tools:context="com.krishanandroid.kiranakart.ThirdActivity">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Payment"
        android:textSize="18dp"
        android:gravity="left"
        android:padding="4dp"
        android:textColor="@color/colorAccent"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Total Amount: "
        android:id="@+id/resultTotalAmount"
        android:textSize="18dp"
        android:gravity="left"
        android:padding="4dp"
        android:textColor="#000000"/>

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Enter A/c No"
        android:textSize="18dp"
        android:inputType="number"
        android:id="@+id/etAccountNo"/>

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Enter OTP No"
        android:textSize="18dp"
        android:inputType="number"
        android:id="@+id/etOtpNo"/>

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/buttonPay"
        android:text="Pay"
        android:onClick="checkOutMethod"/>

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/buttonCancel"
        android:text="Cancel"
        android:onClick="checkOutMethod"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Status: "
        android:id="@+id/tvStatus"
        android:textSize="18dp"
        android:gravity="left"
        android:padding="4dp"
        android:textColor="@color/colorAccent"/>

</LinearLayout>


AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.krishanandroid.kiranakart">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".SecondActivity" />
        <activity android:name=".ThirdActivity"></activity>
    </application>

</manifest>

ThirdActivity.java:

package com.krishanandroid.kiranakart;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class ThirdActivity extends AppCompatActivity {

    TextView    tvTotalPrice, tvSetStatus;
    EditText    vEtGetAccountNo, vEtGetOtpNo;
    Button      vButtonPay, vButtonCancel;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_third);

        setViewInit();  // Set view screen

        vButtonPay.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                String vStatusPaid = "Paid";

                String GetAccountNo = vEtGetAccountNo.getText().toString();
                String GetOtpNo = vEtGetOtpNo.getText().toString();

                if (GetAccountNo.length()==0 || GetOtpNo.length()==0)
                {
                    Toast.makeText(ThirdActivity.this,"Please enter A/c and Otp",Toast.LENGTH_SHORT).show();
                }else {
                    tvSetStatus.setText("Status: " +vStatusPaid);
                    Toast.makeText(ThirdActivity.this, "Order Success!", Toast.LENGTH_SHORT).show();
                }
            }
        });

        vButtonCancel.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                String vCancel = "Cancelled";

                tvSetStatus.setText("Status: " +vCancel);
                Toast.makeText(ThirdActivity.this,"You have cancel!",Toast.LENGTH_SHORT).show();
            }
        });
    }

    public void setViewInit(){

        vEtGetAccountNo = (EditText) findViewById(R.id.etAccountNo);
        vEtGetOtpNo = (EditText) findViewById(R.id.etOtpNo);

        vButtonPay = (Button) findViewById(R.id.buttonPay);
        vButtonCancel = (Button) findViewById(R.id.buttonCancel);

        tvSetStatus = (TextView) findViewById(R.id.tvStatus);
        tvTotalPrice = (TextView) findViewById(R.id.resultTotalAmount);

        Intent intent = getIntent();
        Bundle bundle = intent.getExtras();

        double vGetTotalPrice = bundle.getDouble("totalPrice");
        tvTotalPrice.setText("Total price: " +vGetTotalPrice);
    }

}


SecondActivity.java:

package com.krishanandroid.kiranakart;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.RadioButton;
import android.widget.TextView;
import android.widget.Toast;

public class SecondActivity extends AppCompatActivity {

    TextView        tvGetOilResult, tvGetRiceResult, tvGetMilkResult;
    TextView        tvGetTotalPrice, tvSubTotal ;
    RadioButton     rbPalleCoupon, rbSkillGunCoupon;

    double          vTotalPrice =0.00 ;
    double          vSubTotalPrice;
    int             vGetOilQty, vGetRiceQty, vGetMilkQty;
    double          vGetOilCost, vGetRiceCost, vGetMilkCost;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);

        setViewInit();  // Set view screen
    }

    public void setViewInit(){

        tvGetOilResult = (TextView) findViewById(R.id.tvItem1);
        tvGetRiceResult = (TextView) findViewById(R.id.tvItem2);
        tvGetMilkResult = (TextView) findViewById(R.id.tvItem3);

        tvSubTotal = (TextView) findViewById(R.id.tvSubTotal);
        tvGetTotalPrice = (TextView) findViewById(R.id.tvTotalPrice);

        Intent intent = getIntent();
        Bundle bundle = intent.getExtras();

        vGetOilQty = bundle.getInt("oilQty");
        vGetOilCost = bundle.getInt("oilCost");
        vGetRiceQty = bundle.getInt("riceQty");
        vGetRiceCost = bundle.getInt("riceCost");
        vGetMilkQty = bundle.getInt("milkQty");
        vGetMilkCost = bundle.getInt("milkCost");

        if (vGetOilQty == 0)
        {
            tvGetOilResult.setText("\nTV1:\t" +vGetOilQty+ "\t\t "+vGetOilCost);
            tvGetOilResult.setVisibility(View.INVISIBLE);
        }else {
            tvGetOilResult.setText("\nTV1:\t" +vGetOilQty+ "\t\t "+vGetOilCost);
            tvGetOilResult.setVisibility(View.VISIBLE);
        }

        if (vGetRiceQty == 0)
        {
            tvGetRiceResult.setText("TV2:\t" +vGetRiceQty+ "\t\t "+vGetRiceCost);
            tvGetRiceResult.setVisibility(View.INVISIBLE);
        }else {
            tvGetRiceResult.setText("TV2:\t" +vGetRiceQty+ "\t\t "+vGetRiceCost);
            tvGetRiceResult.setVisibility(View.VISIBLE);
        }

        if (vGetMilkQty == 0)
        {
            tvGetMilkResult.setText("TV3:\t" +vGetMilkQty+ "\t\t "+vGetMilkCost);
            tvGetMilkResult.setVisibility(View.INVISIBLE);
        }else {
            tvGetMilkResult.setText("TV3:\t" +vGetMilkQty+ "\t\t "+vGetMilkCost);
            tvGetMilkResult.setVisibility(View.VISIBLE);
        }

        getSubTotal();

        tvSubTotal.setText("----------------------------\nSub Total: "+vSubTotalPrice+"\n----------------------------");
        tvGetTotalPrice.setText("----------------------------\nTotal Price: "+vTotalPrice+"\n----------------------------");
    }

    public void getSubTotal(){
        vSubTotalPrice = (vGetOilCost + vGetRiceCost + vGetMilkCost);
    }

    public void couponMethod(View view) {
       RadioButton rb = (RadioButton) view;
        Boolean isSelected = rb.isChecked();
        switch (view.getId()){
            case R.id.rbPalleCoupon:
                if (isSelected == true)
                {
                    double vPalleCouponValue = 10.00;
                    vTotalPrice = (vSubTotalPrice - vPalleCouponValue); // Adding +10 here
                    Toast.makeText(this,"You have selected Palle coupon ",Toast.LENGTH_SHORT).show();

                   // tvGetTotalPrice.setText("Total Price: " +vTotalPrice);

                    tvGetTotalPrice.setText("----------------------------\nTotal Price: "+vTotalPrice+"\n----------------------------");
                }
                break;

            case R.id.rbSkillGunCoupon:
                if (isSelected == true)
                {
                    vTotalPrice = (vSubTotalPrice - (vSubTotalPrice/100)); // Calculate +1% here
                    Toast.makeText(this,"You have selected Skillgun coupon",Toast.LENGTH_SHORT).show();

                   // tvGetTotalPrice.setText("Total Price: " +vTotalPrice);
                    tvGetTotalPrice.setText("----------------------------\nTotal Price: "+vTotalPrice+"\n----------------------------");
                }
                break;
        }
    }

    public void proceedPayMethod(View view) {

            Intent intent = new Intent(SecondActivity.this, ThirdActivity.class);
            intent.putExtra("totalPrice", vTotalPrice);
            startActivity(intent);
    }

}

MainActivity.java:

package com.krishanandroid.kiranakart;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    CheckBox        vCbGetOil, vCbGetRice, vCbGetMilk;
    EditText        vEtGetOilQty, vEtGetRiceQty, vEtGetMilkQty;

    TextView        vTvNotes;

    // Price declaration here
    private
            int vOilPrice = 80;
            int vRicePrice = 38;
            int vMilkPrice = 20;

            Boolean vOilChecked = true;   // At least one item checked by default
            Boolean vRiceChecked = false;
            Boolean vMilkChecked = false;

            final String vNotes = "1. Oil 1 litre 80/-\n" +
                    "2. Rice 1 kg 38/-\n" +
                    "3. Milk 1 packet 20/-\n";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        setViewInit();  // Set view screen
    }

    public void setViewInit(){

        vEtGetOilQty = (EditText) findViewById(R.id.etOilQty);
        vEtGetRiceQty = (EditText) findViewById(R.id.etRiceQty);
        vEtGetMilkQty = (EditText) findViewById(R.id.etMilkQty);

        vTvNotes = (TextView) findViewById(R.id.tvNotes);
        vTvNotes.setText(vNotes);
    }

    public void checkBoxItemMethod(View view) {

        CheckBox cb = (CheckBox) view;        // Convert parameter to check box type
        boolean isSelected = cb.isChecked(); // Tells a box is checked - True/False

        switch (view.getId()){
            case R.id.cbOil:
                if (isSelected == true) {
                    vOilChecked = true;
                }
                break;
            case R.id.cbRice:
                if (isSelected == true) {
                    vRiceChecked = true;
                }
                break;
            case R.id.cbMilk:
                if (isSelected == true) {
                    vMilkChecked = true;
                }
                break;
        }
    }

    public void checkOutMethod(View view) {

        String vGetOil, vGetRice, vGetMilk ;

        vGetOil = vEtGetOilQty.getText().toString();
        vGetRice = vEtGetRiceQty.getText().toString();
        vGetMilk = vEtGetMilkQty.getText().toString();

        int vOilQty = Integer.parseInt(vGetOil);
        int vRiceQty = Integer.parseInt(vGetRice);
        int vMilkQty = Integer.parseInt(vGetMilk);

        // Price calculation logic here
        int vOilCost = (vOilQty * vOilPrice);
        int vRiceCost = (vRiceQty * vRicePrice);
        int vMilkCost = (vMilkQty * vMilkPrice);

        Intent intent = new Intent(MainActivity.this, SecondActivity.class);

        if (vOilChecked == true)
        {
            intent.putExtra("oilQty",vOilQty);
            intent.putExtra("oilCost",vOilCost);
        }

        if (vRiceChecked == true){
            intent.putExtra("riceQty",vRiceQty);
            intent.putExtra("riceCost",vRiceCost);
        }

        if (vMilkChecked == true){
            intent.putExtra("milkQty",vMilkQty);
            intent.putExtra("milkCost",vMilkCost);
        }
        startActivity(intent);
    }
}

No comments:

Post a Comment