我想将Location对象存储到我的数据库中,然后才能加载它们。如何从其属性构建Location对象?
谢谢!
编辑:到目前为止我找到的唯一可行解决方案是检索当前位置,并覆盖所有属性......必须有更好的方法!
我的代码:
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;
}
答案 0 :(得分:3)
这是有道理的。我相信你可以使用
l = new Location(null);
这样您就不必获取当前位置。这应该仍然创建一个新的Location,但提供者字符串为null,使用另一个Location构造函数:
Location(String provider)
请参阅http://developer.android.com/reference/android/location/Location.html