如何在android中的sqlite中保存双数据类型值

时间:2014-05-22 12:42:48

标签: android android-sqlite

我面临着关于sqlite数据库的问题。我想将数据保存在数据库中。 KEY_LATITUDE和KEY_LONGITUDE分别从info.getLatitude()和info.getLongitude()获取空值。但是info.getLongitude()和info.getLatitude()分别有12.99999和50.9999。

private static final String KEY_ID = "id";
private static final String KEY_EventName = "event_name";
private static final String KEY_Description = "description";
private static final String KEY_Location = "location";
private static final String KEY_Date = "date";
private static final String KEY_Time = "time";
private static  String KEY_LATITUDE ;
private static  String KEY_LONGITUDE ;

addinfo函数将数据保存到数据库中。

    public void addInfo(Event info) {
    SQLiteDatabase db = this.getWritableDatabase();

    ContentValues values = new ContentValues();
    values.put(KEY_EventName, info.getEventName());
    values.put(KEY_Location, info.getLocationName());

    values.put(KEY_Description, info.getDescription());
    values.put(KEY_Date, info.getDate());
    values.put(KEY_Time, info.getTime());

    values.put(KEY_LATITUDE, info.getLatitude()); // it return Double
                                                    // value.i.e 12.999999
    values.put(KEY_LONGITUDE, info.getLongitude()); // it return Double
                                                    // value.i.e 12.999999

    db.insert(TABLE_EVENT_DATA, null, values);
    db.close(); // Closing database connection
}

2 个答案:

答案 0 :(得分:1)

Double值转换为String

 values.put(KEY_LATITUDE, String.valueOf(info.getLatitude())); 
 values.put(KEY_LONGITUDE, String.valueOf(info.getLongitude())); 

答案 1 :(得分:1)

您需要初始化列名变量:

private static  String KEY_LATITUDE ;
private static  String KEY_LONGITUDE ;

改为例如

private static final String KEY_LATITUDE = "latitude";
private static final String KEY_LONGITUDE = "longitude";