【问题标题】:How to delete selected item in a ListView android xamarin如何删除 ListView android xamarin 中的选定项目
【发布时间】:2017-08-11 08:49:23
【问题描述】:

如何删除 ListView 中的选定项目,ListView 的项目来自 SQLite.net 数据库 下面是我的代码,但是当我删除所有行并将新项目添加到数据库时,我无法从列表视图中删除一行

private void popmenu(object sender, AdapterView.ItemClickEventArgs e)
    {
        var menu = new PopupMenu(this, listnames.GetChildAt(e.Position));
        menu.Inflate(Resource.Layout.popup_menu);
        menu.MenuItemClick += (s, A) =>
        {
            switch (A.Item.ItemId)
            {
                case Resource.Id.pop_button1:
                    // update stuff
                    string dpPath = Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal), "user.db3");
                    db = new SQLiteConnection(dpPath);
                    var data = db.Table<LoginTable>();
                    // Toast.MakeText(this, "row:" + (e.Position+1), ToastLength.Short).Show();
                    int ww =(e.Position + 1);
                    var data1 = data.Where(x => x.id == ww);
                    foreach (var item in data1)
                    {
                        db.Delete(item);

                        Toast.MakeText(this, "Delete Successfully", ToastLength.Short).Show();
                    }

                        break;

            }
        };

【问题讨论】:

    标签: android sqlite listview xamarin


    【解决方案1】:

    您可以在适配器的代码中添加删除项目功能,例如:

    public class MainAdapter : BaseAdapter<string>
    {
    
       private List<string> items = new List<string>();
       private Activity context;
    
       public MainAdapter(Activity context, List<string> items) : base()
       {
             this.context = context;
             this.items = items;
       }
    
       ...
    
       public void RemoveItemAt(int position)
       {
          items.RemoveAt(position);
       }
    
    }
    

    然后在item点击事件中:

    private void MListView_ItemClick(object sender, AdapterView.ItemClickEventArgs e)
    {
        adapter.RemoveItemAt(e.Position);
        adapter.NotifyDataSetChanged();
    }
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-07-07
    • 2021-10-27
    • 1970-01-01
    • 1970-01-01
    • 2012-06-22
    • 1970-01-01
    • 2017-07-25
    相关资源
    最近更新 更多