Вызов задачи Asyn c из основного действия во фрагмент - PullRequest
0 голосов
/ 17 июня 2020

У меня есть задача asyn c, которая должна запускаться нажатием кнопки внутри фрагмента нижнего листа. Однако, когда я вызываю метод из фрагмента нижнего листа с помощью

  private async void _navigationButton_Click(object sender, EventArgs e)
   {          
       await ((MainActivity)Activity).Routing();
   }

, я получаю сообщение об ошибке:

CS7036 Нет аргумента, соответствующего требуемому формальному параметру 'p 'of' MainActivity.Routing (MapPoint) 'Maps.

Приведенный ниже код является моим методом получения маршрута при нажатии на точку сопоставления на карте в моей основной деятельности.

try
{
    _textToSpeech = new TextToSpeech(this, this, "com.google.android.tts");

    Stop stop0 = new Stop(_startPoint) { Name = "Starting Point" };
    // Stop stop1 = new Stop(_endPoint) { Name = "EndPoint" };

    if (_endPoint == null)
    {
        await _geocoder.ReverseGeocodeAsync(p);
        _endPoint = p;
        RouteTask routeTask = await RouteTask.CreateAsync(_routingUri);
        RouteParameters routingParameters = await routeTask.CreateDefaultParametersAsync();
        List<Stop> stops = new List<Stop> { new Stop(_startPoint), new Stop(_endPoint) };
        routingParameters.SetStops(stops);
        RouteResult result = await routeTask.SolveRouteAsync(routingParameters);

        Route firstRoute = result.Routes.First();

        _routeAheadGraphic = new Graphic(firstRoute.RouteGeometry) { Symbol = new SimpleLineSymbol(SimpleLineSymbolStyle.Solid, System.Drawing.Color.Blue, 4) };

        SimpleLineSymbol(SimpleLineSymbolStyle.Dash, System.Drawing.Color.Red, 2) }; _myMapView.GraphicsOverlays[0].Graphics.Add(_routeAheadGraphic);

        await _myMapView.SetViewpointGeometryAsync(firstRoute.RouteGeometry, 100);

        return;
}

1 Ответ

0 голосов
/ 18 июня 2020

Если сопоставление недоступно во фрагменте, вы можете сначала определить метод publi c в основном действии, вызвать Routing(mapPoint) внутри этого метода.

Основное действие

 public void MyMethod(){
     Routing(mapPoint);
 }

Фрагмент

private async void _navigationButton_Click(object sender, EventArgs e)
{          
    await ((MainActivity)Activity).MyMethod();
}
...