0
我使用Android Xamarin上的ListAdapter
创建ListView
。我使用它上扩展ListActivityListAdapter On Xamarin for Android
活动这是我的代码
ListAdapter = new ArrayAdapter<string> (
this,
Android.Resource.Layout.SimpleListItem1,
new string[] { "tes1", "tes2", "tes3" }
);
当我把在Oncreate()
它所示。但我确实需要ListAdapter
绑定一些事件(说下载完成事件),所以我把它放在一个我下载数据完成后调用的方法,但为什么ListAdapter
无法显示?我的ListView
变空了。我使用与上面相同的代码。
这是我的onCreate方法
base.OnCreate(bundle);
_DataTopStories = new TopStoriesViewModel();
_DataService = new DataService();
SetContentView(Resource.Layout.ListTopStoriesLayout);
_DataService.GetTopStories();
_DataService.DownloadCompleted += _DataService_DownloadCompleted;
这是下载事件完成
void _DataService_DownloadCompleted(object sender, EventArgs e)
{
var raw = ((DownloadEventArgs)e).ResultDownload;
if(raw!=null)
{
_DataTopStories = JsonConvert.DeserializeObject<TopStoriesViewModel>(raw);
CreateList();
Log.Info("ds", "download completed");
}
}
这是CreateList()
方法
private void CreateList()
{
Log.Info("ds", "list");
ListAdapter = new ArrayAdapter<string>(Application.Context, Android.Resource.Layout.SimpleListItem1, new string[] { "tes4", "tes52", "tes6" });
Log.Info("ds", "set adapter");
}
而在Android的logcat的 “设置适配器” 不会示。它看起来停在ListAdapter上。
如果我读它在xamarin真的没有必要设置适配器。因为我只是使用OnCreate(),它的工作原理 – albilaga 2014-09-26 08:33:53
你是对的:)然后Application.Context是错误的..你需要使用Activity的上下文... – Selvin 2014-09-26 08:36:48
我已经改变Application.Context这个,但仍然不工作 – albilaga 2014-09-26 08:41:04