0% found this document useful (0 votes)
81 views20 pages

Develop An Android Application For Any M-Commerce Application Java Code: Mainactivity - Java

This document contains Java code for developing an Android application for mobile commerce (m-commerce). It includes code for the main activity, a product activity, and a shopping cart activity. The code handles displaying a list of products, viewing product details, adding products to a shopping cart, and viewing the shopping cart.

Uploaded by

Sachin Gupta
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
81 views20 pages

Develop An Android Application For Any M-Commerce Application Java Code: Mainactivity - Java

This document contains Java code for developing an Android application for mobile commerce (m-commerce). It includes code for the main activity, a product activity, and a shopping cart activity. The code handles displaying a list of products, viewing product details, adding products to a shopping cart, and viewing the shopping cart.

Uploaded by

Sachin Gupta
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 20

18.

Develop an android application for any m-commerce application

JAVA code: MainActivity.java

Import
android.content.Int
ent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.text.SpannableString;
import android.text.style.UnderlineSpan;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import android.widget.TextView;

import com.android.tonyvu.sc.demo.adapter.ProductAdapter;
import com.android.tonyvu.sc.demo.constant.Constant;
import com.android.tonyvu.sc.demo.model.Product;

public class MainActivity extends AppCompatActivity {


private static final String TAG = "MainActivity";

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

TextView tvViewShoppingCart =
(TextView)findViewById(R.id.tvViewShoppingCart);
SpannableString content = new
SpannableString(getText(R.string.shopping_cart));
content.setSpan(new UnderlineSpan(), 0, content.length(), 0);
tvViewShoppingCart.setText(content);
tvViewShoppingCart.setOnClickListener(new
View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this,
ShoppingCartActivity.class);
startActivity(intent);
}
});

ListView lvProducts = (ListView)


findViewById(R.id.lvProducts);

lvProducts.addHeaderView(getLayoutInflater().inflate(R.layout.product
_list_header, lvProducts, false));

ProductAdapter productAdapter = new ProductAdapter(this);


productAdapter.updateProducts(Constant.PRODUCT_LIST);

lvProducts.setAdapter(productAdapter);

lvProducts.setOnItemClickListener(new OnItemClickListener() {

@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Product product = Constant.PRODUCT_LIST.get(position
- 1);
Intent intent = new Intent(MainActivity.this,
ProductActivity.class);
Bundle bundle = new Bundle();
bundle.putSerializable("product", product);
Log.d(TAG, "View product: " + product.getName());
intent.putExtras(bundle);
startActivity(intent);
}
});
}
}

JAVA code: ProductActivity.java


import
android.content.In
tent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.text.SpannableString;
import android.text.style.UnderlineSpan;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.ImageView;
import com.android.tonyvu.sc.demo.constant.Constant;
import com.android.tonyvu.sc.demo.model.Product;
import com.android.tonyvu.sc.model.Cart;
import com.android.tonyvu.sc.util.CartHelper;

public class ProductActivity extends AppCompatActivity {


private static final String TAG = "ProductActivity";

TextView tvProductName;
TextView tvProductDesc;
ImageView ivProductImage;
Spinner spQuantity;
Button bOrder;
Product product;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView(R.layout.activity_product);

Bundle data = getIntent().getExtras();


product = (Product) data.getSerializable("product");
Log.d(TAG, "Product hashCode: " + product.hashCode());

//Set Shopping Cart link


setShoppingCartLink();

//Retrieve views
retrieveViews();

//Set product properties


setProductProperties();

//Initialize quantity
initializeQuantity();

//On ordering of product


onOrderProduct();
}

private void setShoppingCartLink() {


TextView tvViewShoppingCart =
(TextView)findViewById(R.id.tvViewShoppingCart);
SpannableString content = new
SpannableString(getText(R.string.shopping_cart));
content.setSpan(new UnderlineSpan(), 0, content.length(), 0);
tvViewShoppingCart.setText(content);
tvViewShoppingCart.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(ProductActivity.this,
ShoppingCartActivity.class);
startActivity(intent);
}
});
}
private void retrieveViews() {
tvProductName = (TextView) findViewById(R.id.tvProductName);
tvProductDesc = (TextView) findViewById(R.id.tvProductDesc);
ivProductImage = (ImageView)
findViewById(R.id.ivProductImage);
spQuantity = (Spinner) findViewById(R.id.spQuantity);
bOrder = (Button) findViewById(R.id.bOrder);
}

private void setProductProperties() {


tvProductName.setText(product.getName());
tvProductDesc.setText(product.getDescription());

ivProductImage.setImageResource(this.getResources().getIdentifier(prod
uct.getImageName(), "drawable", this.getPackageName()));
}

private void initializeQuantity() {


ArrayAdapter<Integer> dataAdapter = new
ArrayAdapter<Integer>(this, android.R.layout.simple_spinner_item,
Constant.QUANTITY_LIST);

dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dr
opdown_item);
spQuantity.setAdapter(dataAdapter);
}

private void onOrderProduct() {


bOrder.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Cart cart = CartHelper.getCart();
Log.d(TAG, "Adding product: " + product.getName());
cart.add(product,
Integer.valueOf(spQuantity.getSelectedItem().toString()));
Intent intent = new Intent(ProductActivity.this,
ShoppingCartActivity.class);
startActivity(intent);
}
});
}
}

JAVA code: ShoppingCartActivity.java

import
android.app.AlertDi
alog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;

import com.android.tonyvu.sc.demo.adapter.CartItemAdapter;
import com.android.tonyvu.sc.demo.constant.Constant;
import com.android.tonyvu.sc.demo.model.CartItem;
import com.android.tonyvu.sc.demo.model.Product;
import com.android.tonyvu.sc.model.Cart;
import com.android.tonyvu.sc.model.Saleable;
import com.android.tonyvu.sc.util.CartHelper;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;

public class ShoppingCartActivity extends AppCompatActivity {


private static final String TAG = "ShoppingCartActivity";
ListView lvCartItems;
Button bClear;
Button bShop;
TextView tvTotalPrice;

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

lvCartItems = (ListView) findViewById(R.id.lvCartItems);


LayoutInflater layoutInflater = getLayoutInflater();

final Cart cart = CartHelper.getCart();


final TextView tvTotalPrice = (TextView)
findViewById(R.id.tvTotalPrice);

tvTotalPrice.setText(Constant.CURRENCY+String.valueOf(cart.getTotalPr
ice().setScale(2, BigDecimal.ROUND_HALF_UP)));

lvCartItems.addHeaderView(layoutInflater.inflate(R.layout.cart_header
, lvCartItems, false));

final CartItemAdapter cartItemAdapter = new


CartItemAdapter(this);
cartItemAdapter.updateCartItems(getCartItems(cart));

lvCartItems.setAdapter(cartItemAdapter);

bClear = (Button) findViewById(R.id.bClear);


bShop = (Button) findViewById(R.id.bShop);

bClear.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Log.d(TAG, "Clearing the shopping cart");
cart.clear();
cartItemAdapter.updateCartItems(getCartItems(cart));
cartItemAdapter.notifyDataSetChanged();

tvTotalPrice.setText(Constant.CURRENCY+String.valueOf(cart.getTotalPr
ice().setScale(2, BigDecimal.ROUND_HALF_UP)));
}
});

bShop.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(ShoppingCartActivity.this,
MainActivity.class);
startActivity(intent);
}
});

lvCartItems.setOnItemLongClickListener(new
AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent,
View view, final int position, long id) {
new AlertDialog.Builder(ShoppingCartActivity.this)

.setTitle(getResources().getString(R.string.delete_item))

.setMessage(getResources().getString(R.string.delete_item_message))

.setPositiveButton(getResources().getString(R.string.yes), new
DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface
dialog, int which) {
List<CartItem> cartItems =
getCartItems(cart);
cart.remove(cartItems.get(position-
1).getProduct());
cartItems.remove(position-1);

cartItemAdapter.updateCartItems(cartItems);

cartItemAdapter.notifyDataSetChanged();

tvTotalPrice.setText(Constant.CURRENCY+String.valueOf(cart.getTotalPr
ice().setScale(2, BigDecimal.ROUND_HALF_UP)));
}
})

.setNegativeButton(getResources().getString(R.string.no), null)
.show();
return false;
}
});

lvCartItems.setOnItemClickListener(new
AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Bundle bundle = new Bundle();
List<CartItem> cartItems = getCartItems(cart);
Product product = cartItems.get(position-
1).getProduct();
Log.d(TAG, "Viewing product: " + product.getName());
bundle.putSerializable("product", product);
Intent intent = new Intent(ShoppingCartActivity.this,
ProductActivity.class);
intent.putExtras(bundle);
startActivity(intent);
}
});
}

private List<CartItem> getCartItems(Cart cart) {


List<CartItem> cartItems = new ArrayList<CartItem>();
Log.d(TAG, "Current shopping cart: " + cart);
Map<Saleable, Integer> itemMap = cart.getItemWithQuantity();

for (Entry<Saleable, Integer> entry : itemMap.entrySet()) {


CartItem cartItem = new CartItem();
cartItem.setProduct((Product) entry.getKey());
cartItem.setQuantity(entry.getValue());
cartItems.add(cartItem);
}

Log.d(TAG, "Cart item list: " + cartItems);


return cartItems;
}
}

JAVA code: CartItemAdapter.java

import
java.math.BigDe
cimal;
import java.util.Collections;
import java.util.List;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;

import com.android.tonyvu.sc.demo.R;
import com.android.tonyvu.sc.demo.constant.Constant;
import com.android.tonyvu.sc.demo.model.CartItem;
import com.android.tonyvu.sc.model.Cart;
import com.android.tonyvu.sc.util.CartHelper;

public class CartItemAdapter extends BaseAdapter {


private static final String TAG = "CartItemAdapter";
private List<CartItem> cartItems = Collections.emptyList();

private final Context context;

public CartItemAdapter(Context context) {


this.context = context;
}

public void updateCartItems(List<CartItem> cartItems) {


this.cartItems = cartItems;
notifyDataSetChanged();
}

@Override
public int getCount() {
return cartItems.size();
}

@Override
public CartItem getItem(int position) {
return cartItems.get(position);
}

@Override
public long getItemId(int position) {
return position;
}

@Override
public View getView(final int position, View convertView, ViewGroup
parent) {
TextView tvName;
TextView tvUnitPrice;
TextView tvQuantity;
TextView tvPrice;
if (convertView == null) {
convertView = LayoutInflater.from(context)
.inflate(R.layout.adapter_cart_item, parent, false);
tvName = (TextView)
convertView.findViewById(R.id.tvCartItemName);
tvUnitPrice = (TextView)
convertView.findViewById(R.id.tvCartItemUnitPrice);
tvQuantity = (TextView)
convertView.findViewById(R.id.tvCartItemQuantity);
tvPrice = (TextView)
convertView.findViewById(R.id.tvCartItemPrice);
convertView.setTag(new ViewHolder(tvName, tvUnitPrice,
tvQuantity, tvPrice));
} else {
ViewHolder viewHolder = (ViewHolder) convertView.getTag();
tvName = viewHolder.tvCartItemName;
tvUnitPrice = viewHolder.tvCartItemUnitPrice;
tvQuantity = viewHolder.tvCartItemQuantity;
tvPrice = viewHolder.tvCartItemPrice;
}

final Cart cart = CartHelper.getCart();


final CartItem cartItem = getItem(position);
tvName.setText(cartItem.getProduct().getName());

tvUnitPrice.setText(Constant.CURRENCY+String.valueOf(cartItem.getProduct
().getPrice().setScale(2, BigDecimal.ROUND_HALF_UP)));
tvQuantity.setText(String.valueOf(cartItem.getQuantity()));

tvPrice.setText(Constant.CURRENCY+String.valueOf(cart.getCost(cartItem.g
etProduct()).setScale(2, BigDecimal.ROUND_HALF_UP)));
return convertView;
}

private static class ViewHolder {


public final TextView tvCartItemName;
public final TextView tvCartItemUnitPrice;
public final TextView tvCartItemQuantity;
public final TextView tvCartItemPrice;
public ViewHolder(TextView tvCartItemName, TextView
tvCartItemUnitPrice, TextView tvCartItemQuantity, TextView
tvCartItemPrice) {
this.tvCartItemName = tvCartItemName;
this.tvCartItemUnitPrice = tvCartItemUnitPrice;
this.tvCartItemQuantity = tvCartItemQuantity;
this.tvCartItemPrice = tvCartItemPrice;
}
}
}

XML code: activity_main.xml

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
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"
tools:context="com.android.tonyvu.sc.demo.MainActivity">

<TextView android:id="@+id/tvViewShoppingCart"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/blue"
android:gravity="center"
android:paddingBottom="@dimen/common_padding"
android:paddingTop="@dimen/common_padding"
android:text="@string/shopping_cart"
android:textSize="@dimen/small_header_text_size"/>

<TextView
android:id="@+id/tvProductListHeader"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/tvViewShoppingCart"
android:background="@color/green"
android:gravity="center"
android:paddingBottom="@dimen/common_padding"
android:paddingTop="@dimen/common_padding"
android:text="@string/product_list"
android:textAllCaps="true"
android:textSize="@dimen/header_text_size"
android:textStyle="bold"/>

<ListView
android:id="@+id/lvProducts"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_below="@id/tvProductListHeader"/>

</RelativeLayout>

XML code: activity_cart.xml

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
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">

<TextView
android:id="@+id/tvCartHeader"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/green"
android:gravity="center"
android:paddingBottom="@dimen/common_padding"
android:paddingTop="@dimen/common_padding"
android:text="@string/shopping_cart"
android:textAllCaps="true"
android:textSize="@dimen/header_text_size"
android:textStyle="bold"/>

<ListView
android:id="@+id/lvCartItems"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_above="@+id/llTotal"
android:layout_below="@id/tvCartHeader"/>

<LinearLayout
android:id="@+id/llTotal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/llBottom"
android:orientation="horizontal"
android:paddingBottom="@dimen/common_padding"
android:paddingTop="@dimen/common_padding"
android:weightSum="1">

<TextView
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="0.75"
android:gravity="center_vertical|end"
android:text="@string/total_price"
android:textStyle="bold"/>

<TextView
android:id="@+id/tvTotalPrice"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="0.25"
android:gravity="center"
android:text=""
android:textStyle="bold"/>
</LinearLayout>
<LinearLayout
android:id="@id/llBottom"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:orientation="horizontal"
android:weightSum="1">

<Button
android:id="@+id/bClear"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:background="@color/orange"
android:text="@string/clear_cart"
android:textAllCaps="true"
android:textColor="@android:color/white"
android:textStyle="bold"/>

<Button
android:id="@+id/bShop"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:background="@color/orange"
android:text="@string/shop"
android:textAllCaps="true"
android:textColor="@android:color/white"
android:textStyle="bold"/>
</LinearLayout>

</RelativeLayout>

Xml code: activity_product.xml

<?xml
version="1.0"
encoding="utf-
8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin">

<TextView android:id="@+id/tvViewShoppingCart"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:textColor="@color/blue"
android:gravity="center"
android:paddingBottom="@dimen/common_padding"
android:paddingTop="@dimen/common_padding"
android:text="@string/shopping_cart"
android:textSize="@dimen/small_header_text_size"/>

<TextView
android:id="@+id/tvProductName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/tvViewShoppingCart"
android:background="@color/green"
android:gravity="center"
android:padding="@dimen/common_padding"
android:textAllCaps="true"
android:textSize="@dimen/header_text_size"
android:textStyle="bold"/>

<TextView
android:id="@+id/tvProductDesc"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/tvProductName"
android:paddingBottom="@dimen/common_padding"
android:paddingTop="@dimen/common_padding"/>

<ImageView android:id="@+id/ivProductImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_above="@+id/llAction"
android:layout_below="@id/tvProductDesc"
android:paddingTop="5dp"
android:paddingBottom="5dp"/>

<LinearLayout
android:id="@id/llAction"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:orientation="horizontal"
android:weightSum="1">

<TextView
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="0.25"
android:gravity="center_vertical|end"
android:text="@string/quantity"/>

<Spinner
android:id="@+id/spQuantity"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="0.25"/>

<Button
android:id="@+id/bOrder"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:background="@color/orange"
android:text="@string/order"
android:textAllCaps="true"
android:textColor="@android:color/white"
android:textStyle="bold"/>
</LinearLayout>
</RelativeLayout>

XML code: adapter_cart_item.xml

<?xml
version="1.0"
encoding="utf-
8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:minHeight="50dp"
android:orientation="horizontal"
android:weightSum="1">

<TextView
android:id="@+id/tvCartItemName"
android:layout_width="0dip"
android:layout_height="match_parent"
android:layout_weight="0.4"
android:gravity="center"
android:text=""/>

<TextView
android:id="@+id/tvCartItemUnitPrice"
android:layout_width="0dip"
android:layout_height="match_parent"
android:layout_weight="0.2"
android:gravity="center"
android:text=""/>

<TextView
android:id="@+id/tvCartItemQuantity"
android:layout_width="0dip"
android:layout_height="match_parent"
android:layout_weight="0.15"
android:gravity="center"/>

<TextView
android:id="@+id/tvCartItemPrice"
android:layout_width="0dip"
android:layout_height="match_parent"
android:layout_weight="0.25"
android:gravity="center"
android:text=""/>
</LinearLayout>

You might also like