我正在用Android Studio中的SQL做一个预算计算器。用户输入购买日期、物品名称和物品价值。我使用SQL将每个“用户输入”保存到一个新的ListView中。
我希望我的代码访问前面的游标来获取值,将其添加到新键入的数据中,并计算累计总和:
|||
-|-|
[10.01.22]|3.75|咖啡
[10.02.22]|5.00|铅笔
[10.03.22]|10.00|Ring
因此,它显示了花费的总金额(但它只保存ListView,而不会在应用程序关闭时保存总价值)。
String queryString = "SELECT * FROM " + CATEGORY_VALUE;
SQLiteDatabase db = this.getReadableDatabase();
// cursor is the result from the SQlite
Cursor cursor = db.rawQuery(queryString, null);
Cursor cursor2 = db.rawQuery(queryString, null);
Cursor cursor3 = db.rawQuery(queryString, null);
String categoryValue;
String categoryName;
String categoryInfo;
String categoryDate;
String categoryTotal;
if (cursor.moveToFirst()) {
//if ther eare results loop through the results and creat the new customer results for each row
// insert it into the return list and be able to make this function succeed
do {
categoryValue = cursor.getString(1);
categoryName = cursor.getString(2);
categoryInfo = cursor.getString(3);
categoryDate = cursor.getString(4);
//cursor3 = cursor; (I was trying to convert it to float,
//cursor3.moveToPrevious(); sum the previous numbers and put it
//lastCategory = cursor3.getString(5); back to string)
//lastCate_f = Float.valueOf(lastCategory);
categoryTotal = cursor.getString(5);
//thisCate_f = Float.valueOf(categoryTotal);
//totalCate_f = lastCate_f + thisCate_f;
categoryTotal = Float.toString(totalCate_f);
ValueModel newValue = new ValueModel(categoryDate, categoryValue, categoryInfo, categoryName, categoryTotal);
returnList.add(newValue);
} while(cursor.moveToNext());
} else {
//do not add anything to the list.
}
// close both things
cursor.close();
db.close();
return returnList;
}
CATEGORY_VALUE
是我的表名。
当我运行应用程序并在其中输入随机示例时,它实际上汇总了总数!然而,当我关闭并重新打开应用程序时,ListView仍然在那里,但全部从头开始。
[10.01.22]3.75咖啡3.75
[10.02.22]5.00铅笔8.75
[我关闭了应用程序并重新启动]
[10.03.22]10.00环10.00
1条答案
按热度按时间vecaoik11#
可能不需要按照您正在尝试的方式来完成此操作,而是您可以在单个插入中完成所有这些操作,例如:
作为演示,请考虑以下用于按顺序插入所有4行的代码(即运行相同的查询,但值不同):
结果输出(来自SELECT)是:-
Android上的应用
将上述内容合并到一个INSERT方法中(在数据库帮助器中,并假设db是一个已示例化的SQLiteDatabase成员变量):-
然后,为了演示Insert方法,您可以使用:
结果(通过Appcheck)是一个具有以下内容的数据库:
使用的完整DBHelper类为:-