如何在谷歌地图中添加推荐地点?

Posted

技术标签:

【中文标题】如何在谷歌地图中添加推荐地点?【英文标题】:How to add suggested places in Google maps? 【发布时间】:2014-03-31 13:32:40 【问题描述】:

我按照 Google 的教程做了所有事情: 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】:

过滤器是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; 并查看是否可以修复它。

【讨论】:

以上是关于如何在谷歌地图中添加推荐地点?的主要内容,如果未能解决你的问题,请参考以下文章

如何在谷歌地图上显示搜索地址。?

在谷歌地图中隐藏纬度和经度

iOS : 如何在谷歌地图上启用音频方向

如何在谷歌地图中添加两种类型的标记

在谷歌地图上绘制方向

如何在谷歌地图上添加多个标记