如何使用arraylist和数组?它们之间有什么区别?在下面的代码中使用哪一个?

时间:2015-03-30 11:18:17

标签: android arrays arraylist

在下面的代码中,我们使用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&regions=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;
        }

2 个答案:

答案 0 :(得分:0)

如果你有一个常量数组,你可以使用Array else,它更适合使用ArrayList,因为它更容易对它执行操作

当需要分配常量内存块并且大小不会改变时,数组是合适的。当大小可能动态变化时,ArrayList更适合

答案 1 :(得分:0)

有2个字段。你必须创建一些简单的类:

class TwoFields{
   public Double longitude;
   public Double latitude;
}

并将其放到ArrayList,更贴切。

如果你想要一些响应定义onPostExecute()