我正在尝试使用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);
}
}
答案 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);
});
}
}