나는 ListView
을 Android Xamarin에서 ListAdapter
을 사용하여 만듭니다. 나는 Oncreate()
에 표시된 것을 넣을 때이 내 코드ListAdapter Android 용 Xamarin에서
ListAdapter = new ArrayAdapter<string> (
this,
Android.Resource.Layout.SimpleListItem1,
new string[] { "tes1", "tes2", "tes3" }
);
입니다 ListActivity에게
을 확장 활동에 사용하고 있습니다. 그러나 일부 데이터 (다운로드 완료 이벤트)가있을 때 데이터를 바인드하려면 ListAdapter
이 필요하므로 다운로드 데이터를 완료 한 후 호출하는 메소드에 넣으십시오.하지만 왜 ListAdapter
을 표시 할 수 없습니까? 내 ListView
이 비어 있습니다. 위와 같은 코드를 사용하고 있습니다.
이 이것이다 다운로드 이벤트
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");
}
}
을 완료 내에서 OnCreate 방법
base.OnCreate(bundle);
_DataTopStories = new TopStoriesViewModel();
_DataService = new DataService();
SetContentView(Resource.Layout.ListTopStoriesLayout);
_DataService.GetTopStories();
_DataService.DownloadCompleted += _DataService_DownloadCompleted;
이이 방법
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");
}
그리고 "설정 어댑터"안드로이드 로그 캣에서 CreateList()
이 표시되지 않습니다이다 . ListAdapter에서 중지 된 것으로 보입니다.
xamarin에서 true로 읽으면 어댑터를 설정할 필요가 없습니다. 왜냐하면 나는 단지 OnCreate()에서 그것을 사용하고 있기 때문에 작동한다. – albilaga
당신은 맞다. :) 그러면 Application.Context가 잘못되었다. Activity context를 사용해야한다 ... – Selvin
나는 이미 Application.Context를 변경했지만 아직 작동하지 않는다. – albilaga