如何在Xamarin.Android中实现GooglePlacesAPI

如何在Xamarin.Android中实现GooglePlacesAPI,xamarin,xamarin.android,google-places-api,Xamarin,Xamarin.android,Google Places Api,我正在我的应用程序上应用GooglePlacesAPI,并将Java转换成C代码。但我犯了这个错误 先谢谢你 无法将类型“Java.Lang.Object”隐式转换为“Android.Runtime.JavaDictionary”。存在显式转换(是否缺少强制转换?) 我注意到在您的placeList中,其类型是JavaList, 您应该注意,JavaList.Get(position)返回Java.Lang.Object的类型。您不能直接将其转换为JavaDictionary JavaLis

我正在我的应用程序上应用GooglePlacesAPI,并将Java转换成C代码。但我犯了这个错误

先谢谢你

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

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

JavaList
Get(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所说,您可以使用:

完整代码:
使用System.Linq;
...
私有void shownnearbyplaces(JavaList placeList)
{
对于(int-eachPlace=0;eachPlace
使用
JavaCast
-
JavaDictionary<string, string> googlePlace = placeList.Get(eachPlace).JavaCast<JavaDictionary<string, string>>();
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"]);
    }
}