相关文章推荐
个性的灯泡  ·  python ...·  5 月前    · 
近视的花卷  ·  Vue报错 Variable ...·  1 年前    · 
飘逸的领结  ·  SQL + goLang ...·  1 年前    · 
getApplicationContext(), mlistItem,// 数据源 R.layout.listviewitem, new String[] { "mtext", "mtime" }, new int[] { R.id.ItemText, R.id.ItemTime });
2、index索引
int index = 0;// 长按删除指定数据的索引

3、长按得到index

// 添加长按点击,得到点中的index,即参数arg2
		mlistview.setOnItemLongClickListener(new OnItemLongClickListener() {
			@Override
			public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
					int arg2, long arg3) {
				// TODO Auto-generated method stub
				index = arg2;
				return false;
 
4、找到匹配的一项,并进行删除
String deleteText = mlistItem.get(index).get("mtext").toString();
			String deleteTime = mlistItem.get(index).get("mtime").toString();
			SQLiteDatabase db = dbHelper.getReadableDatabase();
			// 以下是把所有的表都存进来,然后_id按顺序排列,方便读取数据
			Cursor cursor = db
					.query("user", null, null, null, null, null, null);
			while (cursor.moveToNext()) {
				String mtext = cursor.getString(cursor.getColumnIndex("mtext"));//得到数据库中的数据
				String mtime = cursor.getString(cursor.getColumnIndex("mtime"));
				currentTime = new Date();
				// 通过主键值来判断点中的listview中的Item所对应的数据库表中的_id
				if (deleteText.equals(mtext) && deleteTime.equals(Cursortime)) {
					deleteData(cursor.getInt(0));//删除匹配的数据库里记录,cursor.getInt(0)为得到该cursor对用的第一例,及_id
					break;
				db.close();
	public void deleteData(int index) {
		SQLiteDatabase db = dbHelper.getReadableDatabase();
		// 删除表的所有数据
		// db.delete("users",null,null);
		// 从表中删除指定的一条数据
		db.execSQL("DELETE FROM " + "user" + " WHERE _id="
				+ Integer.toString(index));
		db.close();
 

附加:使用Thread进行数据更新,如不先清除原有的数据,就会在listview后面添加上相同的数据,所以在Handle中调用

// 清除原来的数据并更新mlistItemAdapter
				mlistItem.clear();
				mlistItemAdapter.notifyDataSetChanged();

之后再重新读取数据库,然后添加进mlistItem即可实现。

有疑问的可加入这个qq群聊一起讨论:431922622(奋斗的Android青年 )

1、先看下listview适配器 mlistItemAdapter = new SimpleAdapter( getApplicationContext(), ml
项目中有这样的需求。在网上找了半天,终于找到一种方法。思路就是在适配器的getView(){}方法中将数据删除,并且在适配器中更新数据。主要代码如下:             currentPosition = position;//记录当前的位置             holder.img_delete.setOnClickListener(new OnClickListener() {
实现效果是listview的点击删除,适配器是simpleadapt 第一次写的时候是直接在一个item的监听里写了button的监听,能出效果,但必须先点击item的其他部位,再点击button才能触发button写的删除,于是想要不要再写个载入时点击,但是感觉这样不太认真,最后参照了大佬的重写simpleadapt。 由于大佬的传图片类... 在网上看到一篇博客:Android Listview显示CheckBox,实现批量删除。但是ListView的某一个Item后,其Item的CheckBox并未被选中,需要重新选择。 这篇博客虽然实现了ListView显示CheckBox并能批量删
在今天的开发工作当中,怎么响应按事件(setOnItemLongClickListener)去删除一个列表项困扰了我将近一天的时间,这是初学者必须经历的。 我总结出两种方式,分享给大家参考,也希望大家能够提出自己的看法。 方法一:使用ContextMenu *为 ListView 的所有 item 注册 ContextMenu  *重写onCreateContextMenu(Cont
SimpleAdapter的构造函数是: public SimpleAdapter (Context context, List> data, int resource, String[] from, int[] to) 官方说明了其各个参数含义,我这里根据自己的理解解释下: 第一个context,很明显大家根据英文可以知道是上下文的意思,它官方的意思是:SimpleAdapte
之前写的第一个代码,只是实现了使用baseadapter 适配器显示listview,但是,在其中的一个button,并没有加上实质性的内容。现在,我们要为这个listview中的button设置按显示button,并且点击之后能够删除这个item。(以后看见这些的时候,记得,你写这个玩意很辛苦) 1.首先,修改xml文件,将button的属性设置为不可见。代码如下: <Button
首先要继承OnItemLongClickListener public class Set_Music extends ListActivity implements OnItemLongClickListener{ 然后设置权限: getListView().setOnItemLongClickListener(this); public boolean onItemLong...