title: How can I get data from Nearby Places into Listview?
body: <p>Which methods do I have to include to my code to pass the data to list view?
  I want to show the nearby places using ListView. It only show the nearby places on the map by clicking the buttons as shown below. When I click the "Nearby School" button it displays the nearby school on the map, now I want it to display the nearby schools using listview. How can I do that? </p>
  
  <pre><code>public class MapsActivity extends FragmentActivity implements com.google.android.gms.location.LocationListener, OnMapReadyCallback, GoogleApiClient.ConnectionCallbacks,
      GoogleApiClient.OnConnectionFailedListener {
  
  private GoogleMap mMap;
  double latitude;
  double longitude;
  private int PROXIMITY_RADIUS = 10000;
  GoogleApiClient mGoogleApiClient;
  Location mLastLocation;
  Marker mCurrLocationMarker;
  LocationRequest mLocationRequest;
  ListView lvMap;
  
  ArrayList&lt;HashMap&lt;String, String&gt;&gt; placesListItems = new ArrayList&lt;HashMap&lt;String,String&gt;&gt;();
  
  @Override
  protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_maps);
  
      if (android.os.Build.VERSION.SDK_INT &gt;= Build.VERSION_CODES.M) {
          checkLocationPermission();
      }
  
      //Check if Google Play Services Available or not
      if (!CheckGooglePlayServices()) {
          Log.d("onCreate", "Finishing test case since Google Play Services are not available");
          finish();
      }
      else {
          Log.d("onCreate","Google Play Services available.");
      }
  
      // Obtain the SupportMapFragment and get notified when the map is ready to be used.
      SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
              .findFragmentById(R.id.maps);
      mapFragment.getMapAsync(this);
  }
  
  private boolean CheckGooglePlayServices() {
      GoogleApiAvailability googleAPI = GoogleApiAvailability.getInstance();
      int result = googleAPI.isGooglePlayServicesAvailable(this);
      if(result != ConnectionResult.SUCCESS) {
          if(googleAPI.isUserResolvableError(result)) {
              googleAPI.getErrorDialog(this, result,
                      0).show();
          }
          return false;
      }
      return true;
  }
  
  
  /**
   * Manipulates the map once available.
   * This callback is triggered when the map is ready to be used.
   * This is where we can add markers or lines, add listeners or move the camera. In this case,
   * we just add a marker near Sydney, Australia.
   * If Google Play services is not installed on the device, the user will be prompted to install
   * it inside the SupportMapFragment. This method will only be triggered once the user has
   * installed Google Play services and returned to the app.
   */
  @Override
  public void onMapReady(GoogleMap googleMap) {
      mMap = googleMap;
      mMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
  
  
  
      //Initialize Google Play Services
      if (android.os.Build.VERSION.SDK_INT &gt;= Build.VERSION_CODES.M) {
          if (ContextCompat.checkSelfPermission(this,
                  Manifest.permission.ACCESS_FINE_LOCATION)
                  == PackageManager.PERMISSION_GRANTED) {
              buildGoogleApiClient();
              mMap.setMyLocationEnabled(true);
          }
      }
      else {
          buildGoogleApiClient();
          mMap.setMyLocationEnabled(true);
      }
  
      Button btnRestaurant = (Button) findViewById(R.id.btnRestaurant);
      btnRestaurant.setOnClickListener(new View.OnClickListener() {
          String Restaurant = "restaurant";
          @Override
          public void onClick(View v) {
              Log.d("onClick", "Button is Clicked");
              mMap.clear();
              String url = getUrl(latitude, longitude, Restaurant);
              Object[] DataTransfer = new Object[2];
              DataTransfer[0] = mMap;
              DataTransfer[1] = url;
              Log.d("onClick", url);
              GetNearbyPlacesData getNearbyPlacesData = new GetNearbyPlacesData();
              getNearbyPlacesData.execute(DataTransfer);
              Toast.makeText(MapsActivity.this,"Nearby Restaurants", Toast.LENGTH_LONG).show();
          }
      });
  
      Button btnHospital = (Button) findViewById(R.id.btnHospital);
      btnHospital.setOnClickListener(new View.OnClickListener() {
          String Hospital = "hospital";
          @Override
          public void onClick(View v) {
              Log.d("onClick", "Button is Clicked");
              mMap.clear();
              String url = getUrl(latitude, longitude, Hospital);
              Object[] DataTransfer = new Object[2];
              DataTransfer[0] = mMap;
              DataTransfer[1] = url;
              Log.d("onClick", url);
              GetNearbyPlacesData getNearbyPlacesData = new GetNearbyPlacesData();
              getNearbyPlacesData.execute(DataTransfer);
              Toast.makeText(MapsActivity.this,"Nearby Hospitals", Toast.LENGTH_LONG).show();
          }
      });
  
      Button btnSchool = (Button) findViewById(R.id.btnSchool);
      btnSchool.setOnClickListener(new View.OnClickListener() {
          String School = "school";
          @Override
          public void onClick(View v) {
              Log.d("onClick", "Button is Clicked");
              mMap.clear();
              if (mCurrLocationMarker != null) {
                  mCurrLocationMarker.remove();
              }
              String url = getUrl(latitude, longitude, School);
              Object[] DataTransfer = new Object[2];
              DataTransfer[0] = mMap;
              DataTransfer[1] = url;
              Log.d("onClick", url);
              GetNearbyPlacesData getNearbyPlacesData = new GetNearbyPlacesData();
              getNearbyPlacesData.execute(DataTransfer);
              Toast.makeText(MapsActivity.this,"Nearby Schools", Toast.LENGTH_LONG).show();
          }
      });
  }
  
  protected synchronized void buildGoogleApiClient() {
      mGoogleApiClient = new GoogleApiClient.Builder(this)
              .addConnectionCallbacks(this)
              .addOnConnectionFailedListener(this)
              .addApi(LocationServices.API)
              .build();
      mGoogleApiClient.connect();
  }
  
  @Override
  public void onConnected(Bundle bundle) {
      mLocationRequest = new LocationRequest();
      mLocationRequest.setInterval(1000);
      mLocationRequest.setFastestInterval(1000);
      mLocationRequest.setPriority(LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY);
      if (ContextCompat.checkSelfPermission(this,
              Manifest.permission.ACCESS_FINE_LOCATION)
              == PackageManager.PERMISSION_GRANTED) {
          LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient, mLocationRequest, this);
      }
  }
  
  private String getUrl(double latitude, double longitude, String nearbyPlace) {
  
      StringBuilder googlePlacesUrl = new StringBuilder("https://maps.googleapis.com/maps/api/place/nearbysearch/json?");
      googlePlacesUrl.append("location=" + latitude + "," + longitude);
      googlePlacesUrl.append("&amp;radius=" + PROXIMITY_RADIUS);
      googlePlacesUrl.append("&amp;type=" + nearbyPlace);
      googlePlacesUrl.append("&amp;sensor=true");
      googlePlacesUrl.append("&amp;key=" + "AIzaSyATuUiZUkEc_UgHuqsBJa1oqaODI-3mLs0");
      Log.d("getUrl", googlePlacesUrl.toString());
      return (googlePlacesUrl.toString());
  }
  
  @Override
  public void onConnectionSuspended(int i) {
  
  }
  
  @Override
  public void onLocationChanged(Location location) {
      Log.d("onLocationChanged", "entered");
  
      mLastLocation = location;
      if (mCurrLocationMarker != null) {
          mCurrLocationMarker.remove();
      }
  
      //Place current location marker
      latitude = location.getLatitude();
      longitude = location.getLongitude();
      LatLng latLng = new LatLng(location.getLatitude(), location.getLongitude());
      MarkerOptions markerOptions = new MarkerOptions();
      markerOptions.position(latLng);
      markerOptions.title("Current Position");
      markerOptions.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_MAGENTA));
      mCurrLocationMarker = mMap.addMarker(markerOptions);
  
      //move map camera
      mMap.moveCamera(CameraUpdateFactory.newLatLng(latLng));
      mMap.animateCamera(CameraUpdateFactory.zoomTo(11));
      Toast.makeText(MapsActivity.this,"Your Current Location", Toast.LENGTH_LONG).show();
  
      Log.d("onLocationChanged", String.format("latitude:%.3f longitude:%.3f",latitude,longitude));
  
      //stop location updates
      if (mGoogleApiClient != null) {
          LocationServices.FusedLocationApi.removeLocationUpdates(mGoogleApiClient, this);
          Log.d("onLocationChanged", "Removing Location Updates");
      }
      Log.d("onLocationChanged", "Exit");
  
  }
  
  @Override
  public void onConnectionFailed(ConnectionResult connectionResult) {
  
  }
  
  public static final int MY_PERMISSIONS_REQUEST_LOCATION = 99;
  public boolean checkLocationPermission(){
      if (ContextCompat.checkSelfPermission(this,
              Manifest.permission.ACCESS_FINE_LOCATION)
              != PackageManager.PERMISSION_GRANTED) {
  
          // Asking user if explanation is needed
          if (ActivityCompat.shouldShowRequestPermissionRationale(this,
                  Manifest.permission.ACCESS_FINE_LOCATION)) {
  
              // Show an explanation to the user *asynchronously* -- don't block
              // this thread waiting for the user's response! After the user
              // sees the explanation, try again to request the permission.
  
              //Prompt the user once explanation has been shown
              ActivityCompat.requestPermissions(this,
                      new String[]{Manifest.permission.ACCESS_FINE_LOCATION},
                      MY_PERMISSIONS_REQUEST_LOCATION);
  
  
          } else {
              // No explanation needed, we can request the permission.
              ActivityCompat.requestPermissions(this,
                      new String[]{Manifest.permission.ACCESS_FINE_LOCATION},
                      MY_PERMISSIONS_REQUEST_LOCATION);
          }
          return false;
      } else {
          return true;
      }
  }
  
  @Override
  public void onRequestPermissionsResult(int requestCode,
                                         String permissions[], int[] grantResults) {
      switch (requestCode) {
          case MY_PERMISSIONS_REQUEST_LOCATION: {
              // If request is cancelled, the result arrays are empty.
              if (grantResults.length &gt; 0
                      &amp;&amp; grantResults[0] == PackageManager.PERMISSION_GRANTED) {
  
                  // permission was granted. Do the
                  // contacts-related task you need to do.
                  if (ContextCompat.checkSelfPermission(this,
                          Manifest.permission.ACCESS_FINE_LOCATION)
                          == PackageManager.PERMISSION_GRANTED) {
  
                      if (mGoogleApiClient == null) {
                          buildGoogleApiClient();
                      }
                      mMap.setMyLocationEnabled(true);
                  }
  
              } else {
  
                  // Permission denied, Disable the functionality that depends on this permission.
                  Toast.makeText(this, "permission denied", Toast.LENGTH_LONG).show();
              }
              return;
          }
  
          // other 'case' lines to check for other permissions this app might request.
          // You can add here other case statements according to your requirement.
      }
  }
  }
  </code></pre>