gpt4 book ai didi

java - 使用 double 值(纬度/经度)过滤器更新 sqlite 行不起作用

转载 作者:行者123 更新时间:2023-11-30 11:18:08 25 4
gpt4 key购买 nike

我想通过纬度/经度(将 double 转换为字符串)标准更新我在 SQLite 数据库中的值。此更新有效但并非总是如此。有时它不会使用现有的纬度/经度更新行。我认为比较 SQLite 存在一些问题REAL 类型数字。

    public static final String ACCOUNT_FILTER = "account = ?";
public static final String LAT_LONG_FILTER = " AND latitude =? AND longitude =?";
getActivity().getContentResolver().update(FeedContract.Entry.CONTENT_URI,
updateValues,
ACCOUNT_FILTER+ LAT_LONG_FILTER,
new String[] {
accountName,
Double.toString(marker.getPosition().latitude),
Double.toString(marker.getPosition().longitude) });

和数据库结构:

private static final String TYPE_TEXT = " TEXT";
private static final String TYPE_REAL = " REAL";
private static final String TYPE_INTEGER = " INTEGER";
private static final String COMMA_SEP = ",";

private static final String SQL_CREATE_ENTRIES = "CREATE TABLE "
+ FeedContract.Entry.TABLE_NAME + " (" + FeedContract.Entry._ID
+ " INTEGER PRIMARY KEY,"
+ FeedContract.Entry.COLUMN_NAME_POINT_ID + TYPE_INTEGER
+ COMMA_SEP + FeedContract.Entry.COLUMN_NAME_LATITUDE
+ TYPE_REAL + COMMA_SEP
+ FeedContract.Entry.COLUMN_NAME_LONGITUDE + TYPE_REAL
+ COMMA_SEP + FeedContract.Entry.COLUMN_NAME_DATE_OF_INSERT
+ TYPE_INTEGER + COMMA_SEP
+ FeedContract.Entry.COLUMN_NAME_TITLE + TYPE_TEXT + COMMA_SEP
+ FeedContract.Entry.COLUMN_NAME_INFO + TYPE_TEXT + COMMA_SEP
+ FeedContract.Entry.COLUMN_NAME_ACCOUNT + TYPE_TEXT + ")";

最佳答案

最后,我将 SQLite 行中的纬度/经度值用作字符串 (TEXT)。通过方法提供的读/写转换:

 Double.parseDouble(yourString);
String.valueOf(yourDouble);

关于java - 使用 double 值(纬度/经度)过滤器更新 sqlite 行不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23974647/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com