【发布时间】:2021-03-27 15:04:42
【问题描述】:
我目前正在制作一个带有购物车的购物应用。我让列表视图以正确的数量和价格显示,但现在在尝试显示结帐总价时遇到问题。我面临两个问题:
-
如何从整列中获取数据,目前我只能从预期列的第一个索引中获取数据。
-
当我清除数据库/清除购物车时,应用程序崩溃,说有一个空值。可能是由于游标无法从数据库中读取任何内容。
CartDatabaseHelper.java getCartPrice() 方法
public Double getCartPrice() {
String query = "SELECT * FROM " + CartContract.CartEntry.TABLE_NAME + " WHERE Cart_Meal_Price";
SQLiteDatabase dbCart;
dbCart = this.getWritableDatabase();
Cursor cursor = dbCart.rawQuery(query, null);
cursor.moveToFirst();
do{if (cursor!=null) {
Double totalPrice = cursor.getDouble(2);
Double sum =+ totalPrice;
return sum;
} else {
return 0.00;
}}while(cursor.moveToNext());
}
CartDataBaseHelper.java 购物车数据库的声明和初始化
public static final int DATABASE_VERSION = 1;
public static final String DATABASE_NAME = "CartDatabase";
public static final String CART_TABLE = "CartTable";
public static final String CREATE_CART_TABLE = "CREATE TABLE " + CartContract.CartEntry.TABLE_NAME + " ( " +
CartContract.CartEntry._ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
CartContract.CartEntry.COLUMN_NAME + " TEXT ," +
CartContract.CartEntry.COLUMN_PRICE + " REAL , " +
CartContract.CartEntry.COLUMN_QUANTITY + " REAL ) " ;
SummaryActivity.java getTotalPrice() 方法
public void getTotalPrice() {
cartDB = new CartDatabaseHelper(this);
double total = cartDB.getCartPrice();
totalprice.setText("Total Price : RM" + total);
}
SummaryActivity.java 清除数据库 onClickListener
clearthedata.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
int deletethedata = getContentResolver().delete(CartContract.CartEntry.CONTENT_URI, null, null);
cartDB = new CartDatabaseHelper(context);
double total = cartDB.getCartPrice();
if (cartDB != null) {
totalprice.setText("Total Price : RM" + total);
} else {
totalprice.setText("Total Price : RM0.00");
}
}
});
【问题讨论】:
标签: java android sqlite android-sqlite