OrderActivity.java
package com.example.order;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import android.app.Activity;
import android.app.Instrumentation;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.ListView;
import android.widget.TextView;
public class OrderActivity extends Activity {
private ListView listView;
public Cursor cursor;
DBHelper dbHelper;
SQLiteDatabase db;
ArrayList<HashMap<String, Object>> Order = new ArrayList<HashMap<String, Object>>();
public String getorderid;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_order);
Intent intent = getIntent();
final String orderid = intent.getStringExtra("orderid");
getorderid=orderid;
Log.i("orderid:", getorderid);
List<OrderDetail> OrderList = getListItems();
listView = (ListView) findViewById(R.id.LVorderList);
OrderAdapter adapter = new OrderAdapter(this, OrderList);
listView.setAdapter(adapter);
Button submit =(Button)findViewById(R.id.BTorderSubmit);
Button back = (Button)findViewById(R.id.BTorderBack);
submit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
back.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new Thread() {
public void run() {
Instrumentation inst = new Instrumentation();
inst.sendKeyDownUpSync(KeyEvent.KEYCODE_BACK);
}
}.start();
}
});
}
public List<OrderDetail> getListItems() {
dbHelper = new DBHelper(this,"orderdetail.db",null,2);
db = dbHelper.getWritableDatabase();
cursor = db.rawQuery("select * from orderdetail where orderid="+getorderid,null );
List<OrderDetail> OrderList = new ArrayList<OrderDetail>();
while(cursor.moveToNext()){
int detailid = cursor.getInt(cursor.getColumnIndex("detailid"));
String orderid = cursor.getString(cursor.getColumnIndex("orderid"));
int menuid = cursor.getInt(cursor.getColumnIndex("menuid"));
String detailName = cursor.getString(cursor.getColumnIndex("detailName"));
int num = cursor.getInt(cursor.getColumnIndex("num"));
int sate = cursor.getInt(cursor.getColumnIndex("sate"));
int price =cursor.getInt(cursor.getColumnIndex("price"));
OrderDetail od = new OrderDetail(detailid,orderid,menuid,detailName,num,sate,price);
OrderList.add(od);
Log.i("od"," detailid:"+detailid+" orderid:"+orderid+" menuid:"+menuid+" detailName:"+detailName+ " num:" +num+ " sate:" +sate+" price:"+price);
}
return OrderList;
}
public class OrderAdapter extends BaseAdapter {
private Context context;
private ArrayList<OrderDetail> orderdetaillist;
private LayoutInflater listContainer;
public OrderAdapter(Context context, List<OrderDetail> orderdetaillist) {
this.context = context;
listContainer = LayoutInflater.from(context);
this.orderdetaillist = (ArrayList<OrderDetail>) orderdetaillist;
}
@Override
public int getCount() {
return cursor.getCount();
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(final int position, View view, ViewGroup parent) {
final int clickID = position;
View items = listContainer.inflate(R.layout.activity_order_items, null);
TextView name = (TextView) items.findViewById(R.id.orderItemName);
TextView price = (TextView) items.findViewById(R.id.orderItemPrice);
Button Sub = (Button) items.findViewById(R.id.BTorderNumSub);
final TextView num = (TextView) items.findViewById(R.id.orderItemNum);
Button Add = (Button) items.findViewById(R.id.BTorderNumAdd);
TextView state = (TextView) items.findViewById(R.id.orderState);
ImageButton Delete = (ImageButton) items.findViewById(R.id.IBorderItemDelete);
name.setText(orderdetaillist.get(position).getDetailName());
price.setText(String.valueOf(orderdetaillist.get(position).getPrice()));
num.setText(String.valueOf(orderdetaillist.get(position).getQuantity()));
state.setText(String.valueOf(orderdetaillist.get(position).getDetailsate()));
Sub.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String quantity=num.getText().toString();
int newquantity=Integer.parseInt(quantity)-1;
num.setText(String.valueOf(newquantity<1?1:newquantity));
String refresh=num.getText().toString();
int menuid =orderdetaillist.get(clickID).getMenuID();
Log.i("新数量", String.valueOf(refresh));
String sql ="update orderdetail set num=? where menuid=? and orderid=?";
db.execSQL(sql,new Object[]{refresh,menuid,getorderid});
}
});
Add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String quantity=num.getText().toString();
num.setText(String.valueOf(Integer.parseInt(quantity)+1));
String refresh=num.getText().toString();
int menuid =orderdetaillist.get(clickID).getMenuID();
Log.i("新数量", String.valueOf(refresh));
String sql ="update orderdetail set num=? where menuid=? and orderid=?";
db.execSQL(sql,new Object[]{refresh,menuid,getorderid});
}
});
Delete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int menuid =orderdetaillist.get(clickID).getMenuID();
orderdetaillist.remove(orderdetaillist.get(clickID));//移除数据
String sql ="delete from orderdetail where menuid=? and orderid=?";
db.execSQL(sql,new Object[]{menuid,getorderid});
notifyDataSetChanged();
}
});
return items;
}
}
}