最近开发有一个需求就是实现扫一扫,添加商品到购物车,购物车页面添加一个清空按钮,购物车列表页面,可以调整数据,可以增加,减少,与输入数字。
效果大概如图所示:
还有长按删除数据,减少数字到0 时自动删除该项item。
所以,此处我利用的是GreenDao实现该购物车。
首先,之前没有用过GreenDao,下面是使用GreenDao的导入与使用步骤。
首先:
在App的gradle下,添加如下:
apply plugin: 'org.greenrobot.greendao' // apply plugin
implementation 'org.greenrobot:greendao:3.2.2' // add library
还有如果需要配置生成数据库文件的话,需要添加如下:
greendao {//添加到 android{}里面
schemaVersion 1
daoPackage 'com.greendao.test'//此处是自命名的生成数据库的报名 可以根据自己的需要设置
targetGenDir 'src/main/java'
}
接下来,在项目的project的gradle中,添加如下:
classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2' // add plugin
mavenCentral() // add repository 添加到repositories中
如图所示:
此处就是将GreenDao引入项目的过程。
接下来,就是创建数据库所需的数据类。
关键点如下所示:
import org.greenrobot.greendao.annotation.Entity;
import org.greenrobot.greendao.annotation.Generated;
import org.greenrobot.greendao.annotation.Id;
import org.greenrobot.greendao.annotation.Unique;
import java.io.Serializable;
/**
* @author: 12233
* @date: 2019/9/30
@Entity 声明数据库的类
*/
@Entity
public class CashierGoodsEntity implements Serializable {
//ID 自增,必须声明为大写的Long
@Id(autoincrement = true)
private Long id;
private String name;
private String price;
private int number;
//@Unique 代表在数据库中,这个字段的值是唯一的 如商品ID等,用来操作数据库,修改等
@Unique
private String goodsId;
private String imgUrl;
private String stockNumber;
//实现序列化接口,需要声明的常量
private static final long serialVersionUID = 1L;
//下面所有的数据 都是自动生成的 不需要手动去实现
@Generated(hash = 1418534478)
public CashierGoodsEntity(Long id, String name, String price, int number,
String goodsId, String imgUrl, String stockNumber) {
this.id = id;
this.name = name;
this.price = price;
this.number = number;
this.goodsId = goodsId;
this.imgUrl = imgUrl;
this.stockNumber = stockNumber;
}
@Generated(hash = 1050263336)
public CashierGoodsEntity() {
}
public Long getId() {
return this.id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public String getPrice() {
return this.price;
}
public void setPrice(String price) {
this.price = price;
}
public int getNumber() {
return this.number;
}
public void setNumber(int number) {
this.number = number;
}
public String getGoodsId() {
return this.goodsId;
}
public void setGoodsId(String goodsId) {
this.goodsId = goodsId;
}
public String getImgUrl() {
return this.imgUrl;
}
public void setImgUrl(String imgUrl) {
this.imgUrl = imgUrl;
}
public String getStockNumber() {
return this.stockNumber;
}
public void setStockNumber(String stockNumber) {
this.stockNumber = stockNumber;
}
}
此处是自动生成的GreenDao相关的类。