Develop An Android Application For Any M-Commerce Application Java Code: Mainactivity - Java
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;
@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);
}
});
lvProducts.addHeaderView(getLayoutInflater().inflate(R.layout.product
_list_header, lvProducts, false));
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);
}
});
}
}
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);
//Retrieve views
retrieveViews();
//Initialize quantity
initializeQuantity();
ivProductImage.setImageResource(this.getResources().getIdentifier(prod
uct.getImageName(), "drawable", this.getPackageName()));
}
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dr
opdown_item);
spQuantity.setAdapter(dataAdapter);
}
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;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_cart);
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));
lvCartItems.setAdapter(cartItemAdapter);
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);
}
});
}
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;
@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;
}
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;
}
<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>
<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
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
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>