最近開發有一個需求就是實現掃一掃,添加商品到購物車,購物車頁面添加一個清空按鈕,購物車列表頁面,可以調整數據,可以增加,減少,與輸入數字。
效果大概如圖所示:
還有長按刪除數據,減少數字到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相關的類。