将Google地方信息结果传递到ListView

时间:2016-03-17 08:37:11

标签: android google-maps listview hashmap

我正在开发一个显示您周围的出租车公司的应用程序。主页是带有标记的地图,显示不同的出租车公司。有没有办法在下一页上将姓名,地址和电话号码等详细信息发送到ListView?是否可以将HashMap详细信息传递给ListView,如果是,如何?可以将它添加到下面显示地图标记的类中吗?

package com.example.chela.taxilocatorapplication;


import java.util.HashMap;

import android.os.AsyncTask;
import android.util.Log;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;
import org.json.JSONObject;


import java.util.List;

public class PlacesDisplayTask extends AsyncTask<Object, Integer, List<HashMap<String, String>>> {

    JSONObject googlePlacesJson;
    GoogleMap mMap;

    @Override
    protected List<HashMap<String, String>> doInBackground(Object... inputObj) {

        List<HashMap<String, String>> googlePlacesList = null;
        com.example.chela.taxilocatorapplication.Places placeJsonParser = new com.example.chela.taxilocatorapplication.Places();

        try {
            mMap = (GoogleMap) inputObj[0];
            googlePlacesJson = new JSONObject((String) inputObj[1]);
            googlePlacesList = placeJsonParser.parse(googlePlacesJson);
        } catch (Exception e) {
            Log.d("Exception", e.toString());
        }
        return googlePlacesList;
    }

    @Override
    protected void onPostExecute(List<HashMap<String, String>> list) {
        mMap.clear();
        for (int i = 0; i < list.size(); i++) {
            MarkerOptions markerOptions = new MarkerOptions();
            HashMap<String, String> googlePlace = list.get(i);
            double lat = Double.parseDouble(googlePlace.get("lat"));
            double lng = Double.parseDouble(googlePlace.get("lng"));
            String placeName = googlePlace.get("place_name");
            String vicinity = googlePlace.get("vicinity");
            LatLng latLng = new LatLng(lat, lng);
            markerOptions.position(latLng);
            markerOptions.title(placeName + " : " + vicinity);
            mMap.addMarker(markerOptions);
        }

    }
}

1 个答案:

答案 0 :(得分:1)

        for (int i = 0; i < jsonArray.length(); i++) {

            jsongetcart = new ParseGetCartFromOrderList();
            jsongetcart.quantity = j
            jsongetcart.currency =jsonArray.getJSONObject(i).getString("currency")
            cartListFromOrder.add(jsongetcart);

        }

这样做就是cartListFromOrder是我的arraylist而且我在其中添加货币你可以添加名字,手机没有任何想法和ParseGetCartFromOrderList()是我的模型类

   public class ParseGetCartFromOrderList {
    public String locid;

    public String currency;}

并在此数组列表中使用此类作为数据类型

public static ArrayList<ParseGetCartFromOrderList> cartListFromOrder;

现在您可以使用setter和getter`

轻松地将此数据添加到适配器