title: Incompatible types required java.lang.string found java.lang.object
body: <p>I'm following <a href="http://examples.javacodegeeks.com/android/android-google-places-autocomplete-api-example/" rel="nofollow">this</a> tutorial to be able to implement Google Places API on a search view. I'm getting the following error on this line:</p>
  
  <blockquote>
    <p>Incompatible types required java.lang.string found java.lang.object</p>
  </blockquote>
  
  <pre><code>@Override
  public String getItem(int index) {
      return resultList.get(index);
  }
  </code></pre>
  
  <p>Code snippet:</p>
  
  <pre><code>@Override
  public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_preferences);
      AutoCompleteTextView autoCompView = (AutoCompleteTextView) findViewById(R.id.autoCompleteTextView);
      autoCompView.setAdapter(new GooglePlacesAutocompleteAdapter(this, R.layout.list_item));
      autoCompView.setOnItemClickListener(this);
  }
  
  public void onItemClick(AdapterView adapterView, View view, int position, long id) {
      String str = (String) adapterView.getItemAtPosition(position);
      Toast.makeText(this, str, Toast.LENGTH_SHORT).show();
  }
  
  public static ArrayList autocomplete(String input) {
      ArrayList resultList = null;
      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("&amp;components=country:gr");
          sb.append("&amp;input=" + URLEncoder.encode(input, "utf8"));
  
          URL url = new URL(sb.toString());
          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(LOG_TAG, "Error processing Places API URL", e);
          return resultList;
      } catch (IOException e) {
          Log.e(LOG_TAG, "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(predsJsonArray.length());
          for (int i = 0; i &lt; predsJsonArray.length(); i++) {
              System.out.println(predsJsonArray.getJSONObject(i).getString("description"));
              System.out.println("============================================================");
              resultList.add(predsJsonArray.getJSONObject(i).getString("description"));
          }
      } catch (JSONException e) {
          Log.e(LOG_TAG, "Cannot process JSON results", e);
      }
  
      return resultList;
  }
  
  class GooglePlacesAutocompleteAdapter extends ArrayAdapter implements Filterable {
      private ArrayList resultList;
  
      public GooglePlacesAutocompleteAdapter(Context context, int textViewResourceId) {
          super(context, textViewResourceId);
      }
  
      @Override
      public int getCount() {
          return resultList.size();
      }
  
      @Override
      public String getItem(int index) {
          return resultList.get(index);
      }
  
      @Override
      public Filter getFilter() {
          Filter filter = new Filter() {
              @Override
              protected FilterResults performFiltering(CharSequence constraint) {
                  FilterResults filterResults = new FilterResults();
                  if (constraint != null) {
                      // Retrieve the autocomplete results.
                      resultList = autocomplete(constraint.toString());
  
                      // Assign the data to the FilterResults
                      filterResults.values = resultList;
                      filterResults.count = resultList.size();
                  }
  
                  return filterResults;
              }
  
              @Override
              protected void publishResults(CharSequence constraint, FilterResults results) {
                  if (results != null &amp;&amp; results.count &gt; 0) {
                      notifyDataSetChanged();
                  } else {
                      notifyDataSetInvalidated();
                  }
              }
          };
  
          return filter;
      }
  }
  </code></pre>
  
  <p>Any ideas on how to rectify this?</p>