在回调方法中设置Adapter时,不会填充Xamarin Android ListView

时间:2013-09-27 07:12:44

标签: listview xamarin.android xamarin

我正在尝试使用ListView加载数据来填充Web Service 我设置了代码,用于在Adapter中设置ListView CallBack Method。但在这种情况下,适配器GetView Override method没有触发& ListView没有填充。

但是当我在OnCreate(Bundle bundle)方法中使用虚拟数据设置适配器时,它可以工作 谁知道我错过了什么?我需要在这里调用任何UI更新方法吗?

  protected List<Product> Products { get; set; }

  protected void FillProductListCallBack(List<Product> products)
   {
      if (products.Any())
      {
        Products = products;
        ProductListView = FindViewById<ListView>(Resource.Id.lstList);
        ProductListView.Adapter = new ProductScreenAdapter(this, Products);
        ProductListView.SetBackgroundColor(Color.Red);
      }
   }

1 个答案:

答案 0 :(得分:3)

回调可能会从UI线程返回,这会导致您的问题。试着这样做:

protected List<Product> Products { get; set; }

protected void FillProductListCallBack(List<Product> products)
{
    if (products.Any())
    {
        RunOnUiThread(() => 
        {
            Products = products;
            ProductListView = FindViewById<ListView>(Resource.Id.lstList);
            ProductListView.Adapter = new ProductScreenAdapter(this, Products);
            ProductListView.SetBackgroundColor(Color.Red);
        });
    }
}