【问题标题】:Can you help me with my code?你能帮我写代码吗?
【发布时间】:2017-03-28 11:01:50
【问题描述】:
using Android.App;
using Android.Widget;
using Android.OS;
using System;
using Android.Content;
using Android.Runtime;
using Android.Views;
using Android.Gms.Maps;
using Android.Gms.Maps.Model;
using System.Configuration;


namespace googlemaps
{
    [Activity(Label = "googlemaps", MainLauncher = true, Icon = "@drawable/icon")]


    MainActivity


    public class MainActivity: Activity, IOnMapReadyCallback
    { 
        private GoogleMap GMap;


        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
            // Set our view from the "main" layout resource  
            SetContentView(Resource.Layout.XMLFile1);

            SetUpMap();
        }
        private void SetUpMap()
        {
           if (GMap == null)
            {

                MapFragment mapFragment = (MapFragment)FragmentManager.FindFragmentById(Resource.Id.map).GetMapAsync(this);
            }
        }
        public void OnMapReady(GoogleMap googleMap)
        {
            MarkerOptions MarkerOptions = new MarkerOptions();
            MarkerOptions.SetPosition(new LatLng(16.03, 108));
            MarkerOptions.SetTitle("My Postion");
            googleMap.AddMarker(MarkerOptions);
            googleMap.UiSettings.ZoomControlsEnabled = true;
            googleMap.UiSettings.CompassEnabled = true;
            googleMap.MoveCamera(CameraUpdateFactory.ZoomIn());

        }


        }

    }

和

“Fragment”不包含“GetMapAsync”的定义,并且找不到接受“Fragment”类型的第一个参数的扩展方法“GetMapAsync”(您是否缺少 using 指令或程序集引用?)googlemaps

提前谢谢你

【问题讨论】:

  • 请不要发布您的代码截图 - 发布您的代码作为文本并正确格式化使用{ .... } 编辑器中的键
  • 谢谢你的建议,但这是我第一次问,我不知道怎么问你能帮我吗?
  • 正如我所说 - 不要发布您的代码的屏幕截图 - 发布您的代码直接作为文本,并通过突出显示正确格式化文本并单击编辑器工具栏中的{ .... } 按钮 - 代码将从左侧缩进 4 个空格,因此将显示为代码,很好地突出显示语法和所有.....这使得它看起来更简单,从而增加有人研究它并提供答案的机会$
  • 无论Fragment 类型是什么,它都没有名为GetMapAsync 的方法。而且由于FindFragmentById(显然)返回一个Fragment 实例,所以你不能这样做。就像尝试做String.DoSomethingThatAStringCantDo() - 字符串上没有这样的方法。

标签: c# xamarin


【解决方案1】:

您的方法“OnMapReady”需要覆盖基类的方法。

public override void OnMapReady(GoogleMap gmap)
{
    //dostuff
}

我不是 100% 因为我从来没有专门这样做过,但我相当肯定它在抱怨这个回调方法。

我使用this 找到了答案。这是用于 android 开发的本机 Java,但根据经验,它大部分都可以很好地转换为 Xamarin。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-01
    • 2017-04-08
    • 2020-04-11
    • 1970-01-01
    • 1970-01-01
    • 2022-08-06
    • 2021-02-07
    • 2018-11-03
    相关资源
    最近更新 更多