0

我根據與谷歌教程一切正常: https://developers.google.com/places/training/autocomplete-android如何在Google地圖中添加建議的地點?

,仍然在該項目中的錯誤

我在這一段代碼的一個問題:

private class PlacesAutoCompleteAdapter extends ArrayAdapter<String> implements Filterable { 
    private ArrayList<String> resultList; 

    public PlacesAutoCompleteAdapter(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 && results.count > 0) { 
        notifyDataSetChanged(); 
       } 
       else { 
        notifyDataSetInvalidated(); 
       } 
      }}; 
     return filter; 
    } 
} 

進口:

import java.io.IOException; 
import java.io.InputStreamReader; 
import java.net.HttpURLConnection; 
import java.net.MalformedURLException; 
import java.net.URL; 
import java.net.URLEncoder; 
import java.util.ArrayList; 
import java.util.List; 

import org.json.JSONArray; 
import org.json.JSONException; 
import org.json.JSONObject; 

import android.content.Context; 
import android.location.Address; 
import android.location.Geocoder; 
import android.os.AsyncTask; 
import android.os.Handler; 
import android.text.Editable; 
import android.text.TextWatcher; 
import android.util.Log; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.ArrayAdapter; 
import android.widget.AutoCompleteTextView; 
import android.widget.Button; 
import android.widget.CheckBox; 
import android.widget.EditText; 
import android.widget.Filterable; 
import android.widget.ImageButton; 
import android.widget.ImageView; 
import android.widget.LinearLayout; 
import android.widget.RelativeLayout; 
import android.widget.ScrollView; 
import android.widget.TextView; 
import android.widget.Toast; 

import com.ggimer.dodatki.Animacje; 
import com.ggimer.wyznaczanietrasy.R; 
import com.google.android.gms.drive.query.Filter; 
import com.google.android.gms.maps.GoogleMap; 

和錯誤:

返回類型是 ArrayAdapter.getFilter(不兼容) - - 在這條線

多個標記覆蓋 android.widget.ArrayAdapter.getFilter

多個標記在該行 - FilterResults不能得到解決 - 新Filter(){}類型的執行過濾(CharSequence)方法必須覆蓋或實現超類型 方法 該行的多個標記 - FilterResults無法解析 爲類型- FilterResults解決不了 的類型

FilterResults不能被解析爲一個類型

我說的錯誤。

爲什麼要複製所有的文檔我仍然有錯誤?

+0

你的具體錯誤是什麼? – cbrulak

+0

我添加了錯誤。 爲什麼要複製所有的文檔我仍然有錯誤? – Gimer

回答

0

過濾器是一個abstract class.

我認爲你缺少的匿名類聲明的一部分。你檢查了docs嗎?

另外,您的導入:import com.google.android.gms.drive.query.Filter;

可能會導致您的問題的一部分。我不認爲這兩個類型是兼容的:

  • ArrayAdapter.GetFilter有望重返android.widget.Filter
  • 您的進口使它看起來就像你可能會返回com.google.android.gms.drive.query.Filter

所以,仔細檢查那。嘗試刪除import com.google.android.gms.drive.query.Filter;,看看是否修復它。

相關問題