在下面的代码中,我们使用for循环来获取纬度和经度的数组。我们如何从这个类中返回(值)?我如何从googleapiclass获得纬度和经度以便我可以使用另一个类,即如果我们将它们添加到一个arraylist,我们将如何在另一个类中检索它们。
public class Googleapicall extends AsyncTask<String, Void, String>
{
private ProgressDialog Dialog;
@Override
protected void onPreExecute() {
Dialog = new ProgressDialog(LocationActivity.this);
Dialog.setMessage(LocationActivity.this.getResources().getString(
R.string.loading));
Dialog.setCancelable(false);
Dialog.show();
}
@Override
protected String doInBackground(String... params) {
JSONObject jObject = null;
String Url = "https://maps.googleapis.com/maps/api/place/search/json?location="+lat+","+lon+"&radius=5000®ions=postal_code&sensor=true&key="+Googlekey;
try
{
HttpClient client = new DefaultHttpClient();
HttpGet get = new HttpGet(Url);
HttpResponse responseGet = client.execute(get);
resEntityGet = responseGet.getEntity();
if (resEntityGet != null) {
//do something with the response
result=EntityUtils.toString(resEntityGet, HTTP.UTF_8);
jObject =(JSONObject) new JSONTokener(result)
.nextValue();
getresults=jObject.getString("html_attributions");
JSONArray array = jObject.getJSONArray("results");
for(int i=0;i<array.length();i++)
{
Double longitude = ((JSONArray)jObject.get("results")).getJSONObject(i)
.getJSONObject("geometry").getJSONObject("location")
.getDouble("lng");
Double latitude = ((JSONArray)jObject.get("results")).getJSONObject(i)
.getJSONObject("geometry").getJSONObject("location")
.getDouble("lat");
}
}
}
catch(Exception e)
{
e.printStackTrace();
}
return null;
}
答案 0 :(得分:0)
如果你有一个常量数组,你可以使用Array else,它更适合使用ArrayList,因为它更容易对它执行操作
当需要分配常量内存块并且大小不会改变时,数组是合适的。当大小可能动态变化时,ArrayList更适合
答案 1 :(得分:0)
有2个字段。你必须创建一些简单的类:
class TwoFields{
public Double longitude;
public Double latitude;
}
并将其放到ArrayList
,更贴切。
如果你想要一些响应定义onPostExecute()