我试图在异步webservice调用之后显示列表视图,但由于某种原因,此代码失败....任何建议?现在,它只是崩溃了应用程序。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Android.App;
using Android.Content;
using Android.OS;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Test.MyWeb;
namespace Test
{
[Activity(Label = "Favorites")]
public class FavoritesActivity : ListActivity
{
private ProgressDialog d;
private TextView tv;
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
d = new ProgressDialog(this);
d.SetTitle("Loading...");
d.SetMessage("Please wait...");
d.SetIcon(Resource.Drawable.chef_icon);
d.Show();
Test.MyWeb.Daedalus Service = new Daedalus();
Service.getCategoriesCompleted += Service_OnComplete;
Service.getCategories();
}
private void Service_OnComplete(object s, getCategoriesCompletedEventArgs e)
{
try
{
d.Hide();
List<Test.MyWeb.CATEGORY> Categories = e.Result.ToList();
List<string> cats = new List<string>();
foreach (Test.MyWeb.CATEGORY Item in Categories)
{
cats.Add(Item.NAME);
}
ListAdapter = new ArrayAdapter<string>(this, Resource.Layout.Favorites, cats);
ListView.TextFilterEnabled = true;
ListView.ItemClick += delegate(object sender, ItemEventArgs args)
{
// When clicked, show a toast with the TextView text
Toast.MakeText(Application, ((TextView)args.View).Text, ToastLength.Short).
Show();
};
} catch(Exception ex)
{
Toast.MakeText(this, ex.Message, ToastLength.Short).Show();
}
}
}
}
答案 0 :(得分:4)
如果它确实是异步调用,则需要修改UI线程上的UI,而不是后台线程:
http://mono-android.net/Documentation/Guides/Writing_Responsive_Applications
无论如何,您应该能够在Android日志中找到错误:
http://mono-android.net/Documentation/Guides/Android_Debug_Log