【发布时间】:2018-07-23 11:31:18
【问题描述】:
我在 Android Studio 开发一个 Android 应用程序,该应用程序的其余部分已开发,包括 MapActivity。地图标记从以 JSON 格式返回纬度和经度的 Web API 获取它们的位置。当代码在onClickListener 内并按下相应的按钮时,代码可以完美地完成我想要的一切,但我希望标记立即加载到onCreate 中,这样用户就不必按下按钮来加载标记。但是,当我将完全相同的代码放入onCreate 时,它根本不起作用,errorListener 被调用,但是当我尝试打印错误消息时它是空白的?
这是代码(提前致谢)
loadMachines.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
StringRequest st = new StringRequest(Request.Method.POST, URL, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONObject jsonarray = new JSONObject(response);
JSONArray machinesArray = jsonarray.getJSONArray("machines");
for (int i = 0; i < machinesArray.length();i++){
JSONObject machineProperties = machinesArray.getJSONObject(i);
String addr1 = machineProperties.getString("address_1");
String addr2 = machineProperties.getString("address_2");
String lat = machineProperties.getString("lat");
String lng = machineProperties.getString("lng");
MarkerOptions options = new MarkerOptions().title(addr1 + " " + addr2).position(new LatLng(Double.parseDouble(lat),Double.parseDouble(lng)));
mGoogleMap.addMarker(options);
}
Toast.makeText(MapActivity.this, "Success, we have updated the locations, zoom out to view!", Toast.LENGTH_SHORT).show();
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
if (error.networkResponse.statusCode == 500) {
Toast.makeText(MapActivity.this , "Internal Server Error", Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(MapActivity.this, error.getMessage(), Toast.LENGTH_SHORT).show();
}
}
}) {
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> params = new HashMap<String, String>();
params.put("key", "****");
params.put("token", tokenString);
params.put("user_lat", String.valueOf(getLatitude()));
params.put("user_lng", String.valueOf(getLatitude()));
return params;
}
};
MySingleton.getInstance(MapActivity.this).addToRequestQueue(st);
}
});
【问题讨论】:
-
分享您的活动的完整代码。
标签: android google-maps android-studio android-fragments