gpt4 book ai didi

java - java中使用Json对象更新数据库

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

我正在尝试更新数据库中存在的位置。该位置以包含城市 ID 和城市名称的城市数组列表的形式存储。我正在尝试让应用程序位置感知。如果用户位置发生变化,将从 Home Frame Activity 的 onCreate() 方法调用此函数。如果您可以查看此代码并让我知道这是否是更新数据库的过程或​​者是否需要进行任何代码更改,那就太好了。到目前为止,即使在检测到用户当前的城市(与用户注册的城市不同)并使用此函数更新数据库中的城市后,不同的 API(如 callGeneralListAPI、callConnectAPI 等)仍使用旧的城市 ID。

我附上了日志文件的屏幕截图,它显示即使在检索当前城市(加尔各答城市 ID 7)后,不同的 API 仍然使用孟买的旧城市 ID(城市 ID 1)。

如果我在这里遗漏了一些代码逻辑,请告诉我。如有帮助,我们将不胜感激。

<

private void setCurrentLocation() {

Log.i("info", "SETTING location FROM home FRAME ACTIVITY- SET CURRENT

LOCATION");


Log.d("LOCATION", "LATITUDE=" + Double.toString(gpsTracker.getLatitude()));
Log.d("LOCATION", "longitude=" +
Double.toString(gpsTracker.getLongitude()));

getLocationName(gpsTracker.getLatitude(), gpsTracker.getLongitude());

location = gpsTracker.getLocation();//the bug you pointed out
Log.d("LOCATION", "LATITUDE=" + Double.toString(location.getLatitude()));
Log.d("LOCATION", "longitude=" + Double.toString(location.getLongitude()));

Log.d("CITY NAME-", addressString);


if (location != null) {
formList = AppController.getInstance().getFormList();
ArrayList<String> citieList = new ArrayList<>();
for (Map<String, String> item : formList) {
citieList.add(item.get("city"));
}
String[] citiesArray = citieList.toArray(new String[citieList.size()]);

JSONObject locationChange = new JSONObject();
try {
if (addressString != null && !TextUtils.isEmpty(addressString)) {

if (formList.indexOf(addressString) != -1) {
CITY_ID = formList.indexOf(addressString) + 1;
locationChange.put("userid",
PreferenceManager.getInstance().getUserId());
locationChange.put("location", CITY_ID);
locationChange.put("location_lat",
Double.toString(gpsTracker.getLatitude()));
locationChange.put("location_long",
Double.toString(gpsTracker.getLongitude()));
locationChange.put("connection", "0");

Log.d(TAG, "LOCATION SET INTO DATABASE-INDEX OF ADDRESS
STRING >1 " + locationChange);
this.showProgressbar();
RequestHandler.getInstance().postWithHeader(this,
getString(R.string.baseurl) + getString(R.string.settings), locationChange,
this, AppConstants.ApiRequestCodeKey.SAVE_APP_SETTINGS);

}
for (int i = 0; i < formList.size(); i++) {




if(addressString.toLowerCase().contains(formList.get(i).get("city")
.toLowerCase())
)
CITY_ID = i + 1;// the id from the json file is (i+1)
}
locationChange.put("userid",
PreferenceManager.getInstance().getUserId());
locationChange.put("location", CITY_ID);
locationChange.put("location_lat",
Double.toString(gpsTracker.getLatitude()));
locationChange.put("location_long",
Double.toString(gpsTracker.getLongitude()));
locationChange.put("connection", "0");

Log.d(TAG, "LOCATION SET INTO DATABASE- INDEX OF ADDRESS STRING
= -1 " + locationChange);
this.showProgressbar();
RequestHandler.getInstance().postWithHeader(this,
getString(R.string.baseurl) + getString(R.string.settings), locationChange,
this, AppConstants.ApiRequestCodeKey.SAVE_APP_SETTINGS
);

}
}
catch (JSONException e) {
e.printStackTrace();
}

}
}

>

enter image description here

最佳答案

我认为您应该执行以下调试过程。

  1. 如果可能的话,请回复

RequestHandler.getInstance().postWithHeader(this,
getString(R.string.baseurl) + getString(R.string.settings), locationChange,
这个,AppConstants.ApiRequestCodeKey.SAVE_APP_SETTINGS

操作成功或失败。如果失败了,那么问题就出现了。如果成功的话,

  • 检查它在哪里保存值,实际上是否改变了所需的值(我猜它没有改变)。如果不改变,那么问题就出在这里。但如果改变的话,
  • 检查其他 API 调用从何处获取此值。
  • 关于java - java中使用Json对象更新数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45027131/

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