google-maps - Google Places Autocomplete 有时在 Xamarin Android 项目中不起作用
问题描述
我正在我的 Xamarin Android 项目中实现Google Places Autocomplete。(这不是 Xamarin Forms 项目)。当我第一次搜索时,自动完成功能正常,但随后的搜索无法正常工作。
即使自动完成功能有效,如果我选择一个项目,它也不会调用OnActivityResult
函数并再次返回上述屏幕。
即使这些帖子也没有解决我的问题
我没有设置结算帐户,但我认为这不是问题,因为它有时会起作用。我该如何解决这个问题?
(请注意,这不是一个重复的问题,因为我找不到任何这样的问题)
这是我用来打开 Google Places 自动完成视图的代码
private void BtnLocationOnClick(object sender, EventArgs e)
{
List<Place.Field> fields = new List<Place.Field>();
fields.Add(Place.Field.Id);
fields.Add(Place.Field.Name);
fields.Add(Place.Field.LatLng);
fields.Add(Place.Field.Address);
Intent intent = new Autocomplete.IntentBuilder(AutocompleteActivityMode.Overlay, fields)
.SetCountry("US")
.Build(this);
StartActivityForResult(intent, 1);
}
选择项目OnActivityResult
后,需要调用函数
protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
{
base.OnActivityResult(requestCode, resultCode, data);
if (requestCode == 1)
{
if (resultCode == Android.App.Result.Ok)
{
Place place = Autocomplete.GetPlaceFromIntent(data);
txtLocation.Text = place.Name;
googleMap.AnimateCamera(CameraUpdateFactory.NewLatLngZoom(place.LatLng, 15));
}
}
}
解决方案
要使 Places API(或任何其他 Maps API)正常工作,必须为您的项目启用结算功能。否则,您每天被限制为 1 个请求。
按照 Google 的入门指南创建结算帐户并将其链接到您的项目。
还要确保您的项目也启用了Places API 。
希望这可以帮助!
推荐阅读
- javascript - 如何使用javascript在分页中添加下一个和上一个按钮以及一些页码
- asp.net-mvc - 具有受信任域成员身份的 ASP.NET User.IsInRole()
- node.js - 如何在 .jsx 文件中呈现 mongoose 查询中的元素?
- apache-kafka - kafka acl授权中的adminclient-congs.conf应该是什么
- docker - 使用 docker-compose 进行 Cronjob
- reactjs - 将 ReactJS Web 应用程序 Web 部署到 IIS
- sql - 在 SQL Server 中确定每个用户每天 10 分钟间隔内的访问时间集群
- javascript - 如何使用 console.log 打印 Mongoose 对象属性?
- css - 如何使用 CSS 使我的表格不超过我的卡片宽度?
- python-3.x - 如何解决:IndexError:只有整数、切片(`:`)、省略号(`...`)、numpy.newaxis(`None`)和整数或布尔数组是有效的索引