2010-11-17 86 views
1

我想定位的對象存儲到我的數據庫,然後就可以加載它們。我怎樣才能從它的屬性構建一個Location對象?如何從數據庫檢索位置對象?

  • 我應該創建一個空白的位置,然後設置屬性? (如果是的話,怎麼樣?)
  • 我應該用我的數據庫作爲一個LocationProvider? (如果是的話,怎麼樣?)

謝謝!

編輯:我發現迄今爲止唯一的工作解決方案是檢索當前位置,並覆蓋所有屬性...必須有更好的方法!

我的代碼:

public Location selectLocationById(int id){ 
    String query = "SELECT * FROM " + LOCATIONS_TABLE + " WHERE id = " + id + ";"; 
    Cursor c = db.rawQuery(query, null); 
    Location l = null; 
    if(c.getCount() == 1) { 
     c.moveToFirst(); 
     if(c.getColumnCount() == 8){ 
      l = new Location(MyProject.getCurrentLoc()); 
      l.setAccuracy(c.getFloat(1)); 
      l.setAltitude(c.getDouble(2)); 
      l.setBearing(c.getFloat(3)); 
      l.setLatitude(c.getDouble(4)); 
      l.setLongitude(c.getDouble(5)); 
      l.setSpeed(c.getFloat(6)); 
      l.setTime(c.getLong(7)); 
     } 
    } 

    if(c != null && !c.isClosed()) { 
     c.close(); 
    } 

    return l; 
} 

回答

3

這是有道理的。我相信你可以使用

l = new Location(null); 

這樣你就不必得到你的當前位置。這還是應該創建一個新的位置,但隨着空提供商的字符串,用其他位置的構造函數:

Location(String provider) 

http://developer.android.com/reference/android/location/Location.html

+2

謝謝,它的工作原理。 升=新的位置((字符串)NULL); 我正在使用錯誤的構造函數,它會拋出空指針異常: l = new Location((Location)null); – nbarraille 2010-11-17 19:19:40

+0

不錯,很高興您使用(字符串),我錯過了爲好,哈哈。 – spanky 2010-11-17 19:23:43