【问题标题】:How to implement google places api into Xamarin.Android如何在 Xamarin.Android 中实现 google places api
【发布时间】:2018-01-16 16:14:10
【问题描述】:

我正在我的应用上应用 Google Places Api 并将 Java 转换为 C# 代码。但是我收到了这个错误。

提前谢谢你。

【问题讨论】:

标签: xamarin xamarin.android google-places-api


【解决方案1】:

无法将类型“Java.Lang.Object”隐式转换为“Android.Runtime.JavaDictionary”。存在显式转换(您是否缺少演员表?)

我注意到在您的previous question 中,placeList 的类型是JavaList, 您应该注意JavaList.Get(position) 返回Java.Lang.Object 的类型。不能直接转成JavaDictionary

JavaListGet(int location) 方法:

public class JavaList : Java.Lang.Object, System.Collections.IList, System.Collections.ICollection, IEnumerable
{
    ...
    public virtual Java.Lang.Object Get(int location);
}

解决方案 1:

正如@Jon Douglas 所说,您可以使用JavaCast

JavaDictionary<string, string> googlePlace = placeList.Get(eachPlace).JavaCast<JavaDictionary<string, string>>();

解决方案 2:

你可以使用System.Linq

JavaDictionary<string, string> googlePlace = placeList.ElementAt(eachPlace);

完整代码:

using System.Linq;
...
private void showNearbyPlaces(JavaList<JavaDictionary<string, string>> placeList)
{
    for (int eachPlace = 0; eachPlace < placeList.Count; eachPlace++)
    {       
        JavaDictionary<string, string> googlePlace = placeList.ElementAt(eachPlace);

        string reference = googlePlace["reference"];
        double lat = System.Double.Parse(googlePlace["lat"]);
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-16
    • 1970-01-01
    • 2022-01-10
    • 1970-01-01
    相关资源
    最近更新 更多