![](/img/trans.png)
[英]How to retrieve only unique values from arraylist<hashmap<>> from Sqlite database into listview in android?
[英]Using SQLite Query to put only unique values into ListView for a “history app”
老實說,我不知道如何正確地命名這個問題。
我有一個與這些列的SQLite數據庫。
private final String createDb = "CREATE TABLE IF NOT EXISTS " + TABLE_NAME + " ( "
+ C_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
+ DATE + " text, "
+ SUBCAT + " text, "
+ ITEM + " text, "
+ PRICE + " integer, "
+ QUANTITY + " integer, "
+ WEIGHT + " integer, "
+ VOLUME + " integer, "
+ SALE + " text, "
+ STORE + " text, "
+ EXTRA + " text) ";
並嘗試使用ViewBinder
調用如下所示的SQL查詢。
public String avgPrice() {
ourHelper = new DbHelper(ourContext);
db = ourHelper.getReadableDatabase();
String sql = "SELECT AVG(PRICE) as avgprice, ITEM FROM " + TABLE_NAME + " GROUP BY " + ITEM;
Cursor d = db.rawQuery(sql, null);
我最初有一個帶有XML的ListView,該XML包含每一列的textview。 這只是將每一列從數據庫中拉出1:1。 使用適配器很容易。 我正在嘗試使用ViewBinder
檢測每個輸入項目的平均價格(如果存在重復的實例,例如,不同的日期),並顯示該項目的價格。
本質上,我希望ListView僅顯示每個項目一次(平均價格),並且當您選擇它時,您可以查看每個存儲的實例(如歷史記錄)。
從我所在的位置進行此操作最簡單的方法是什么? 假設可以在上面使用ViewBinder
方法(或查詢),如何提取ITEM and AVG(PRICE)
放入適當的視圖一次,以實現“歷史記錄”功能?
將以下內容添加到數據庫的創建字符串中:
+ "UNIQUE(" + COLUMN_NAME + ") ON CONFLICT REPLACE);";
這樣,您將在其中擁有想要唯一的任何列名,不允許重復,並且如果兩次輸入數據庫將被替換。 我假設您擁有的一列可以是唯一的。 例如,像item_id一樣,那么一次只能添加該項目中的一個,它將顯示最新的ON CONFLICT REPLACE
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.