【问题标题】:Android SQLite storing lat and long as 0Android SQLite 存储 lat 和 long 为 0
【发布时间】:2014-04-26 17:59:40
【问题描述】:

我正在尝试在 SQLite 数据库中为 Android 应用程序存储经纬度位置。我可以存储位置名称、位置地址、SSID 和密码,但纬度和经度似乎总是存储为 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);";

输入数据的部分,此时“值”是一个包含正确纬度和经度的列表:

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);
}

最后这是通过从数据库中读取来创建列表的地方,这里的值为 0:

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;
}

不确定是否可能是由于 while(!cursor.isAfterLast()) 可能提前退出循环?还是 cursorToInfo 中的 toString? cursorToInfo(cursor) 的代码是:

private Info cursorToInfo(Cursor cursor){
    Info info = new Info();
    info.setName(cursor.getString(0));
    return info;
}

【问题讨论】:

    标签: android sqlite


    【解决方案1】:

    您的cursorToInfo() 仅检索第一列值,丢弃游标中任何其他可能的列。 Java 对象字段默认初始化为零/空,这解释了为什么您没有明确设置的字段会显示为零。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-18
      • 1970-01-01
      • 2015-05-20
      相关资源
      最近更新 更多