簡體   English   中英

從主要活動調用異步任務到片段

[英]Call on an Async Task from main activity to a fragment

我有一個異步任務,需要在我的底頁片段內單擊按鈕時進行初始化。 但是,當我從我的底頁片段調用該方法時

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

我得到錯誤:

CS7036 沒有給出與“MainActivity.Routing(MapPoint)”地圖所需的形式參數“p”相對應的參數。

下面的代碼是我在我的 mainactivity 中單擊 map 上的地圖點時獲取路線的方法。

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;
}

如果 mappoint 在 Fragment 中不可用,您可以先在 Main 活動中定義一個公共方法,在該方法中調用Routing(mapPoint)

主要活動

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

分段

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM