[英]Android fetch data from database using arraylist
我正在使用arraylist從數據庫中獲取數據,但是一些雙精度值轉換為四舍五入值。
public ArrayList<HashMap<String, String>> getTrackList() {
SQLiteDatabase db = dbHelper.getReadableDatabase();
String selectQuery = "SELECT * FROM TRACK";
ArrayList<HashMap<String, String>> trackList = new ArrayList<HashMap<String, String>>();
trackList.clear();
Cursor cursor = db.rawQuery(selectQuery, null);
if (cursor.moveToFirst()) {
do {
HashMap<String, String> track = new HashMap<String, String>();
track.put("LATITUDE", cursor.getString(cursor.getColumnIndex("LATITUDE")));
track.put("LONGITUDE", cursor.getString(cursor.getColumnIndex("LONGITUDE")));
track.put("DATE", cursor.getString(cursor.getColumnIndex("DATE")));
track.put("SPEED", cursor.getString(cursor.getColumnIndex("SPEED")));
track.put("ACCURACY", cursor.getString(cursor.getColumnIndex("ACCURACY")));
track.put("PROVIDER", cursor.getString(cursor.getColumnIndex("PROVIDER")));
track.put("DISTANCE", cursor.getString(cursor.getColumnIndex("DISTANCE")));
trackList.add(track);
} while (cursor.moveToNext());
}
jSon = new Gson().toJson(trackList);
cursor.close();
return trackList;
}
這里的緯度,經度和距離是雙精度值,距離與數據庫相同,但是緯度或經度不相同,假設數據庫中的緯度為22.8569874,但返回22.857
唯一的解釋是數據庫中的數據格式類似於double
。
如果查詢將其讀出,則將數字四舍五入為4位數字。
通過將數據庫中的值更改為string
來進行嘗試,並這樣編寫: 22.8569874
; 然后,如果您需要用於計算的數字或其他內容,則從字符串中刪除"
並將其轉換為double
。
嘗試這個:
while (cr.moveToNext()) {
cr.getString(cr.getColumnIndex("CardName"));
Log.e("SOAP ERROR",cr.getString(cr.getColumnIndex("CardName")));
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.