Вы используете метод Cursor getCount()
, который возвращает количество строк, которое будет равно 1, так как запрос возвращает агрегат (т. Е. Сумму).
Вместо этого вам нужно
- a) перейти к первой строке курсора и затем
- b) прочитать / извлечь данные из соответствующего столбца, используя соответствующий метод Cursor
get???
.
Таким образом, ваш код может быть: -
public static double countPrice (SQLiteDatabase db, int selectedID){
String[] sumPrice = new String[]{"sum(item_price)"};
String selection = "list_id =? AND item_flag =?";
String[] selectionArgs = new String[]{String.valueOf(selectedID), String.valueOf(0)};
Cursor c = db.query(TABLE_NAME, sumPrice, selection, selectionArgs, null, null, null);
Double result = 0; // default value to signify nothing extracted
if(c.moveToFirst()) { // move to the first(only) row in the Cursor
result = c.getDouble(0); // get the value from the first column
}
c.close(); // Should always close cursors when done with them
return result; // Ok to return extracted value (or default for nothing extracted)
}