private void AfterTextChanged(object sender, AfterTextChangedEventArgs eventArgs) { if (_cancellationTokenSource != null) { _cancellationTokenSource.Cancel(); } _cancellationTokenSource = new CancellationTokenSource(); var token = _cancellationTokenSource.Token; Criteria.Name = eventArgs.Editable.ToString(); Task.Run(async() => { var result = await _locationService.GetLocations(Criteria, token); _activity.RunOnUiThread(() => { _locationAdapter.UpdateList(result.Data); }); }, token); }
public override View GetView(int position, View convertView, ViewGroup parent) { AddGoodsDispatchedNoteAdapterViewHolder viewHolder = null; if (convertView == null) { convertView = _layoutInflater.Inflate(_resourceId, parent, false); viewHolder = new AddGoodsDispatchedNoteAdapterViewHolder(convertView); convertView.Tag = viewHolder; } else { viewHolder = (AddGoodsDispatchedNoteAdapterViewHolder)convertView.Tag; } var item = GetItem(position); viewHolder.Position = position; viewHolder.AddGoodsDispatchedNoteRowItemProductName.Text = item.Name; viewHolder.AddGoodsDispatchedNoteRowItemLocation.Adapter = _locationAdapter; var token = Helpers.Helpers.CancelAndSetTokenForView(viewHolder.AddGoodsDispatchedNoteRowItemLocation); Task.Run(async() => { var adapter = new BaseArrayAdapter <Models.Location>(Context, Android.Resource.Layout.SimpleListItem1); var result = await _locationService.GetLocationsByProduct("name", item.Name, token); _activity.RunOnUiThread(() => { viewHolder.AddGoodsDispatchedNoteRowItemLocation.Adapter = adapter; adapter.UpdateList(result.Data); }); }, token); return(convertView); }