Как получить AutocompletePredictionBuffer от AutocompletePredictionBufferResponse в xamarin Android - PullRequest
0 голосов
/ 09 октября 2018

Я использую автозаполнение Google Адресов для своего приложения xamarin.android.Я звоню "GetAutocompletePredictions".В методе «OnComplete (Task task)» я получаю задачу, в которой я получаю «AutocompletePredictionBufferResponse», но теперь я не могу получить AutocompletePredictionBuffer из AutocompletePredictionBufferResponse.

using Android.App;
using Android.Widget;
using Android.OS;
using Android.Support.V7.App;
using Android.Gms.Maps;
using Android.Gms.Location.Places;
using Android.Gms.Maps.Model;
using Android.Gms.Tasks;
using Android.Content;
using Android.Util;
using Android.Views;
using Android.Gms.Common.Apis;
using Android.Support.V4.App;
using System.Collections.Generic;
using Java.Lang;
using System.Reflection;

namespace GooglePlacesAndroidNative
{
  [Activity(Label = "GooglePlacesAndroidNative", MainLauncher = 
   true, Icon = "@mipmap/icon")]
public class MainActivity : Activity, IOnCompleteListener, 
                                                 IOnSuccessListener
{
    GeoDataClient getGeoDataClient;

    protected override void OnCreate(Bundle savedInstanceState)
    {
        base.OnCreate(savedInstanceState);

        LatLngBounds bounds = new LatLngBounds(new 
        LatLng(38.46572222050097, -107.75668023304138), new 
        LatLng(39.913037779499035, -105.88929176695862));

        getGeoDataClient = 
         PlacesClass.GetGeoDataClient(Android.App.Application.Context, 
          null);

        Android.Gms.Tasks.Task result = 
         getGeoDataClient.GetAutocompletePredictions("pune", bounds, 
          null);

        result.AddOnCompleteListener(this);

        result.AddOnSuccessListener(this);

    }

    public void OnComplete(Task task)
    {
        AutocompletePredictionBufferResponse test = (AutocompletePredictionBufferResponse)task.Result;
    }


    public void OnSuccess(Object result)
    {
        AutocompletePredictionBufferResponse test = (AutocompletePredictionBufferResponse)result;
    }
}
}

Мой вопрос: «getGepleteGentoTeteTo».Функция «, bounds, null)» возвращает Android.Gms.Tasks.Task, который является «AutocompletePredictionBufferResponse».В Java android класс «AutocompletePredictionBufferResponse» имеет такие функции, как «get (int)», «getCount ()», но в xamarin.android та же функция не имеет всех этих функций, из которых я могу получить информацию Placess.Вместо этого «AutocompletePredictionBuffer» имеет все эти функции в xamarin.android.Теперь мой вопрос: когда я получаю ответ API в OnComplete (Task), я получаю «AutocompletePredictionBufferResponse», из этого объекта класса, как я могу получить всю информацию о PLacess или, по крайней мере, как я могу получить объект «AutocompletePredictionBuffer».

1 Ответ

0 голосов
/ 09 октября 2018

У Xamarin есть помощники на основе расширений, и поэтому вы можете использовать асинхронное / ожидающее выполнение в стиле C # с этими Android.Gms.Tasks.Tasks через GetAutocompletePredictionsAsync

var bufferResponse = await getGeoDataClient.GetAutocompletePredictionsAsync("pune", bounds, null);

Или с помощью Android.Gms.Extensions Xamarin:

var result = await TasksExtensions.AsAsync<AutocompletePredictionBufferResponse>(getGeoDataClient.GetAutocompletePredictions("pune", bounds, null));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...