簡體   English   中英

Android使用arraylist從數據庫中獲取數據

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM