如何在Google地图中添加建议的地点?

时间:2014-02-27 20:50:25

标签: android google-maps-android-api-2 autocompletetextview

我根据谷歌的教程做了一切: https://developers.google.com/places/training/autocomplete-android

并且项目中仍有错误

我在这段代码中遇到了问题:

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无法解析为某种类型        - 类型new Filter(){}的performFiltering(CharSequence)方法必须覆盖或实现超类型        方法   此行有多个标记        - 无法解析FilterResults        一种类型        - 无法解析FilterResults        到一个类型

     

FilterResults无法解析为类型

我添加了错误。

为什么复制所有文档仍然有错误?

1 个答案:

答案 0 :(得分: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;并查看是否可以修复它。