0
私は、バックまたは次のボタンをクリックしたときにWebサービスを使用して自分のWebサイトからデータをロードするアプリケーションで作業しています。私は3回前のボタンをクリックしたときに今、その後、一度アイテムリストビューをクリックし、その後、私のリストビュー項目Xamarin:List View Item ItemClickイベントトリガーを複数回実行する
private async void LoadPosts(int year, int month){
IPostService postService = new PostService();
var posts = await postService.GetPosts(year, month);
PostAdapter adapter = new PostAdapter(Activity, posts.ToList();
_lstView.Adapter = adapter;
_lstView.ItemClick += _lstView_ItemClick;
}
private void _lstView_ItemClick(object sender, AdapterView.ItemClickEventArgs e){
var item = _lstView.GetItemAtPosition(e.Position).Cast<Post>();
var bundle = new Bundle();
bundle.PutInt("post_id", item.ID);
var nextFragment = new PostDetailFragment { Arguments = bundle };
var fragmentTransaction = this.Activity.SupportFragmentManager.BeginTransaction().Replace(Resource.Id.content_frame, nextFragment).Commit();
}
private void _btnPrev_Click(object sender, EventArgs e){
_selectedDate = _selectedDate.AddMonths(-1);
LoadPosts(_selectedDate.Year, _selectedDate.Month);
}
にそのアダプタを読み込む私のカスタムPostAdapterクラスにそれらのデータをロードします。それは、リストビューアイテムのアイテムクリックイベントの3回トリガされます。何か案は?
'_lstView.ItemClick'を1回だけ設定してください。あなたが 'LoadPosts'を実行したときではありません。投稿を読み込むたびに、別のitemClickハンドラが追加されます。 – ElefantPhace
あなたは正しいです、ありがとう –