1
我試圖在一個Android應用程序的SQLite數據庫中的經度和緯度存儲位置。我能夠存儲位置的名稱,位置的地址,SSID和密碼,但經度和緯度似乎始終存儲爲0.Android SQLite存儲緯度和長度爲0
我知道它試圖將值寫入數據庫正確,但是在這個階段和檢索他們之間的事情是不對的。
這是我的表的定義,我正在使用REAL數據類型痛苦經緯度 - 這是正確的嗎?
private static final String DATABASE_CREATE = "create table "
+ INFO_TABLE + " (" + COLUMN_NAME + " TEXT PRIMARY KEY NOT NULL, "
+ COLUMN_ADDRESS + " TEXT, "
+ COLUMN_LAT + " REAL, "
+ COLUMN_LONG + " REAL, "
+ COLUMN_SSID + " TEXT, "
+ COLUMN_PASSWORD + " TEXT);";
並輸入數據的部分,在這一點上「值」是包含一個列表中選擇正確lat和長:
public Info enterInfo(String name, String address, double lat, double lng, String ssid, String password){
ContentValues values = new ContentValues();
values.put(SQLiteHelper.COLUMN_NAME, name);
values.put(SQLiteHelper.COLUMN_ADDRESS, address);
values.put(SQLiteHelper.COLUMN_LAT, lat);
values.put(SQLiteHelper.COLUMN_LONG, lng);
values.put(SQLiteHelper.COLUMN_SSID, ssid);
values.put(SQLiteHelper.COLUMN_PASSWORD, password);
long insertId = database.insert(SQLiteHelper.INFO_TABLE, null, values);
}
最後這就是被讀取創建的列表由於(cursor.isAfterLast()!)可能走出循環的早期的同時
public List<Info> getAllInfo(){
List<Info> infos = new ArrayList<Info>();
Cursor cursor = database.query(SQLiteHelper.INFO_TABLE, allColumns, null,null,null,null,null);
cursor.moveToFirst();
while(!cursor.isAfterLast()){
Info info = cursorToInfo(cursor);
infos.add(info);
cursor.moveToNext();
}
//Close the cursor
cursor.close();
return infos;
}
不知道也許是:數據庫,這裏的值是0?或者cursorToInfo中的toString?對於cursorToInfo(光標)的代碼是:
private Info cursorToInfo(Cursor cursor){
Info info = new Info();
info.setName(cursor.getString(0));
return info;
}
現貨,解決了它謝謝 – pietomb