如何在Xamarin.Android中实现GooglePlacesAPI
我正在我的应用程序上应用GooglePlacesAPI,并将Java转换成C代码。但我犯了这个错误 先谢谢你 无法将类型“Java.Lang.Object”隐式转换为“Android.Runtime.JavaDictionary”。存在显式转换(是否缺少强制转换?) 我注意到在您的placeList中,其类型是如何在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
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"]);
}
}