热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

从SQLiteDatabase中删除Listview中的按钮-DeleteButtoninListviewfromSQLiteDatabase

Iwaswonderingifsomebodycouldfurtherexplainhowtoimplementadeletebuttoninsidealistview

I was wondering if somebody could further explain how to implement a delete button inside a listview that is populated from an SQLite database. I've read the responses to the following question that is essentially what I'm asking as well, but I don't understand it:

我想知道是否有人可以进一步解释如何在从SQLite数据库填充的列表视图中实现删除按钮。我已经阅读了对以下问题的回答,这些问题基本上也是我所要求的,但我不明白:

How can I implement a delete button in a ListView and delete from database?

如何在ListView中实现删除按钮并从数据库中删除?

In my custom row .xml file, I included a delete button that implements the method delete() onClick. It also includes an alert dialog, by the way. Here's the code that I have so far for my delete() method; whenever I try to use it, it never gets the right activtiy entry.

在我的自定义行.xml文件中,我包含了一个删除按钮,该按钮实现了方法delete()onClick。顺便说一下,它还包括一个警报对话框。这是我到目前为止我的delete()方法的代码;每当我尝试使用它时,它永远不会得到正确的活动条目。

  public void delete(View view){

    final int position = listview.getPositionForView((View) view.getParent());
    String id = cursor.getString(cursor.getColumnIndex(SQLiteAdapter.KEY_ID));

    AlertDialog.Builder myDialog = new AlertDialog.Builder(MainActivity.this);

    myDialog.setTitle("Delete activity entry \"" + id + "\"?");
    myDialog.setPositiveButton("DELETE", new DialogInterface.OnClickListener() {

        public void onClick(DialogInterface arg0, int arg1) {
            mySQLiteAdapter.delete(position);
            cursor.requery();
            }
        });

    myDialog.setNegativeButton("CANCEL", new DialogInterface.OnClickListener() {

        public void onClick(DialogInterface arg0, int arg1) {

            }
        });

    myDialog.show();
}

1 个解决方案

#1


0  

A solution is to implement a custom ArrayAdapter.

解决方案是实现自定义ArrayAdapter。

 public class MyArrayAdapter extends ArrayAdapter
    {

        private ArrayList items;

        public LiftArrayAdapter(Context context, int textViewResourceId, ArrayList items)
        {
            super(context, textViewResourceId, items);
            this.items = items;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent)
        {
            View v = convertView;
            if (v == null)
            {
                LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                v = vi.inflate(R.layout.your_view_xml, null);


}
        final YourObject obj = items.get(position);

        TextView lblLift = (TextView) v.findViewById(R.id.lbl_lift);
        ImageButton btnDelete = (ImageButton) v.findViewById(R.id.btn_delete);

        btnDelete .setOnClickListener(new View.OnClickListener()
        {
            @Override
            public void onClick(View v)
            {
                //TODO delete 'obj' from database
            }
        });

        return v;
    }

}

Then, to bind a list of objects to your listview:

然后,将对象列表绑定到listview:

    List list = ...
    MyArrayAdapter myArrayAdapter = new MyArrayAdapter (.., .. ,  list);
    listView.setAdapter(myArrayAdapter);

推荐阅读
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 本文介绍了在使用Laravel和sqlsrv连接到SQL Server 2016时,如何在插入查询中使用输出子句,并返回所需的值。同时讨论了使用CreatedOn字段返回最近创建的行的解决方法以及使用Eloquent模型创建后,值正确插入数据库但没有返回uniqueidentifier字段的问题。最后给出了一个示例代码。 ... [详细]
  • 上图是InnoDB存储引擎的结构。1、缓冲池InnoDB存储引擎是基于磁盘存储的,并将其中的记录按照页的方式进行管理。因此可以看作是基于磁盘的数据库系统。在数据库系统中,由于CPU速度 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • 本文讨论了在使用sp_msforeachdb执行动态SQL命令时,当发生错误时如何捕获数据库名称。提供了两种解决方案,并介绍了如何正确使用'?'来显示数据库名称。 ... [详细]
  • Python操作MySQL(pymysql模块)详解及示例代码
    本文介绍了使用Python操作MySQL数据库的方法,详细讲解了pymysql模块的安装和连接MySQL数据库的步骤,并提供了示例代码。内容涵盖了创建表、插入数据、查询数据等操作,帮助读者快速掌握Python操作MySQL的技巧。 ... [详细]
  • android 触屏处理流程,android触摸事件处理流程 ? FOOKWOOD「建议收藏」
    android触屏处理流程,android触摸事件处理流程?FOOKWOOD「建议收藏」最近在工作中,经常需要处理触摸事件,但是有时候会出现一些奇怪的bug,比如有时候会检测不到A ... [详细]
  • 关于改变ListView选中项的状态方法思路:无论使用哪一个适配器,只需要重写他的getView()方法即可原理:getView方法是用于把创建好的view交给listView用的,所以我们可 ... [详细]
  • 添加layout_weight后,ListView仍未对齐 - ListView is not aligned even after added layout_weight
    Hereistheoutputofmycode.IcannotgetallviewsalignedineachListViewitem.Ialreadyused ... [详细]
  • 具有顺序标题的ListView ... [详细]
  • ListView想要做到上下翻页的效果需要使用如下参数positionViewAtIndex(intindex,PositionModemode)P ... [详细]
author-avatar
MIS-AMY_301
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有