如何在listview项目中按下按钮时运行循环并更新项目视图?

时间:2015-11-24 07:43:48

标签: android listview xamarin long-press

在我的应用程序中,我需要在用户按下按钮时添加到计数器,计数器应该更新。我试过LongClick,这很好用:

productAddButton.LongClick += async (s,e) =>
            {
                while (productAddButton.Pressed)
                {
                    item.count++;
                    await System.Threading.Tasks.Task.Delay(100);
                    ShoppingCardItemCount.Text = item.count.ToString();
                }
            };

但问题是这个productAddButton位于ListView项目中,我需要更新列表适配器中的项目视图。当我将NotifyDataSetChanged添加到上面的代码时,while循环在第二次运行后突然退出!

productAddButton.LongClick += async (s,e) =>
                {
                    while (productAddButton.Pressed)
                    {
                        item.count++;
                        await System.Threading.Tasks.Task.Delay(100);
                        ShoppingCardItemCount.Text=item.count.ToString();
                        NotifyDataSetChanged();
                    }
                };

我认为这是因为ListView在通知数据已被更改后重新创建该项目。所以实际上我触摸的按钮消失了,另一个按钮对象被替换了。整个项目实际上被另一个项目取代。那么我该如何处理这个问题呢?因为我的应用程序中确实需要此功能。 感谢您的任何建议。

0 个答案:

没有答案