public ArrayList<PlacesSuggestionsBean> autocomplete(String input) {

    HttpURLConnection conn = null;
    StringBuilder jsonResults = new StringBuilder();
    try {

      StringBuilder sb = new StringBuilder(PLACES_API_BASE + TYPE_AUTOCOMPLETE + OUT_JSON);
      sb.append("?key=" + API_KEY);
      // sb.append("&components=country:india"); 12,Shikshak Nagar Airport Road,Indore Madhya
      // Pradesh
      sb.append("&input=" + URLEncoder.encode(input, "utf8"));

      URL url = new URL(sb.toString());

      System.out.println("URL: " + url);
      conn = (HttpURLConnection) url.openConnection();
      InputStreamReader in = new InputStreamReader(conn.getInputStream());

      // Load the results into a StringBuilder
      int read;
      char[] buff = new char[1024];
      while ((read = in.read(buff)) != -1) {
        jsonResults.append(buff, 0, read);
      }
    } catch (MalformedURLException e) {
      Log.e("sdf", "Error processing Places API URL", e);
      return resultList;
    } catch (IOException e) {
      Log.e("dsd", "Error connecting to Places API", e);
      return resultList;
    } finally {
      if (conn != null) {
        conn.disconnect();
      }
    }

    try {

      // Create a JSON object hierarchy from the results
      JSONObject jsonObj = new JSONObject(jsonResults.toString());
      JSONArray predsJsonArray = jsonObj.getJSONArray("predictions");

      // Extract the Place descriptions from the results
      resultList = new ArrayList<PlacesSuggestionsBean>(predsJsonArray.length());
      for (int i = 0; i < predsJsonArray.length(); i++) {
        System.out.println(predsJsonArray.getJSONObject(i).getString("description"));
        System.out.println("============================================================");
        PlacesSuggestionsBean placesSuggestionsBean = new PlacesSuggestionsBean();
        placesSuggestionsBean.setDescription(
            predsJsonArray.getJSONObject(i).getString("description"));
        placesSuggestionsBean.setId(predsJsonArray.getJSONObject(i).getString("id"));
        placesSuggestionsBean.setReference(predsJsonArray.getJSONObject(i).getString("reference"));
        resultList.add(placesSuggestionsBean);
      }
    } catch (JSONException e) {
      Log.e("adsd", "Cannot process JSON results", e);
    }

    return resultList;
  }
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

      final ViewHolder holder;
      PlacesSuggestionsBean bean = getItem(position);

      if (convertView == null) {

        holder = new ViewHolder();

        convertView =
            LayoutInflater.from(getContext()).inflate(R.layout.spinner_item, parent, false);

        holder.tvFullName = (TextView) convertView.findViewById(R.id.text);
        convertView.setTag(holder);
      } else {
        holder = (ViewHolder) convertView.getTag();
      }

      holder.tvFullName.setText(bean.getDescription());
      return convertView;
    }