首先创建数据库
public class MySqLite extends SQLiteOpenHelper {
public MySqLite(Context context, String name, CursorFactory factory,
int version, DatabaseErrorHandler errorHandler) {
super(context, name, factory, version, errorHandler);
}
public MySqLite(Context context) {
super(context, "MySqLite", null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table myshop(id varchar(20), num varchar(20),title varchar(200),yushu varchar(20),head varcha(200),qishu varchar(20))");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
然后给数据库添加数据,其中的shopDataList是查询数据后,存放数据的ArrayList
private void addShop() {
ContentValues contentValues = new ContentValues();
//判断数据库是否是空的,如果是空的直接添加数据,如果不是空的则需要判断数据库里是否已经存在这条数据
if (shopDataList.size() > 0) {
for (int i = 0; i < shopDataList.size(); i++) {
if (shopDataList.get(i).getId().equals(usid)) {
// 当该数据库已经包含现在想添加的数据时,清空contentValues;
contentValues.clear();
ToastUtil.getShortToastByString(GoodsDetailActivity.this,
"该商品已在购物车里,请勿重复添加");
// 当该数据库已经包含现在想添加的数据时,跳出循环
return;
} else {
// contentValues 添加数据
contentValues.put("id", usid);// id
contentValues.put("num", 1);// 数量
contentValues.put("title", goods_detail_info.getTitle());// 标题
contentValues.put("yushu",
goods_detail_info.getShenyurenshu());// 余数
contentValues.put("head", AppConfig.SERVER_IMG
+ goods_detail_info.getThumb());// 头像
contentValues.put("qishu", goods_detail_info.getQishu());// 期数
ToastUtil.getShortToastByString(GoodsDetailActivity.this,
"加入购物车成功");
}
}
// 把contentValues里的数据添加到数据库里
mDb.insert("myshop", null, contentValues);
} else {
contentValues.put("id", usid);// id
contentValues.put("num", 1);// 数量
contentValues.put("title", goods_detail_info.getTitle());// 标题
contentValues.put("yushu", goods_detail_info.getShenyurenshu());// 余数
contentValues.put("head",
AppConfig.SERVER_IMG + goods_detail_info.getThumb());// 头像
contentValues.put("qishu", goods_detail_info.getQishu());// 期数
// 把contentValues里的数据添加到数据库里
mDb.insert("myshop", null, contentValues);
ToastUtil
.getShortToastByString(GoodsDetailActivity.this, "加入购物车成功");
}
}
删除数据库,删除数据的按钮是在ListView里面,所以我在Adapter里写了一个接口回调,用来删除数据
@Override
public void onDelListener(String useId) {
<span style="white-space:pre"> </span>//查询数据库
for (int i = 0; i < cursor.getCount(); i++) {
// 根据cursor的长度来获取数据
cursor.moveToPosition(i);
String id = cursor.getString(cursor.getColumnIndex("id"));
if (useId.equals(id)) {
//根据id删除数据库里的某条数据
mDb.delete("myshop", "id=?", new String[] { id });
ToastUtil.getShortToastByString(getActivity(), "删除成功");
}
}
}
修改数据库,修改数据的按钮是在ListView里面,所以我在Adapter里写了一个接口回调,用来修改数据
public void onSubtractListener(String useId) {
//查询数据库
for (int i = 0; i < cursor.getCount(); i++) {
// 根据cursor的长度来获取数据
cursor.moveToPosition(i);
String id = cursor.getString(cursor.getColumnIndex("id"));
String num = cursor.getString(cursor.getColumnIndex("num"));
if (useId.equals(id)) {
int valueOf = Integer.valueOf(num);
valueOf--;
if (valueOf < 0) {
//当商品数量为0时就不给修改数据
ToastUtil.getShortToastByString(getActivity(), "商品数量不能小于0");
} else {
//把要修改的数据丢到contentValues里
ContentValues contentValues = new ContentValues();
contentValues.put("num", valueOf + "");
//根据id修改数据
mDb.update("myshop", contentValues, "id = ?",
new String[] { id });
ToastUtil.getShortToastByString(getActivity(), "删除成功");
}
}
}
}