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青年 )
我有问题删除DataBase使用ListView。我可以删除DataBase,但是当我再次打开ListView时,出现错误。我有两个类是UserList.class和MySQLiteHelpre.class。在我的UserList.class中,我将它扩展为Activity并添加方法onItemLongClick。在Android中删除数据库和ListView06-03 09:13:43.880 ...
1、先看下listview适配器mlistItemAdapter = new SimpleAdapter( getApplicationContext(), mlistItem,// 数据源 R.layout.listviewitem, new String[] { "mtext", "mtime" }, new int[] { R.id.ItemText, R.id.ItemTime });2、...
之前写的第一个代码,只是实现了使用baseadapter 适配器显示listview,但是,在其中的一个button,并没有加上实质性的内容。现在,我们要为这个listview中的button设置长按显示button,并且点击之后能够删除这个item。(以后看见这些的时候,记得,你写这个玩意很辛苦)
1.首先,修改xml文件,将button的属性设置为不可见。代码如下: <Button
在Android开发中经常遇到使用ListView的情况,有时候需要的不仅仅是列表显示,还有长按列表进行多选,并且批量删除的情况,在这里记录一下自己的所学。先上效果图:几个需要用到的核心方法://设置多选模式,下面的方法基于设置多选模式list.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);//获取Item选择状态:list.isItemChecked(...
在今天的开发工作当中,怎么响应长按事件(setOnItemLongClickListener)去删除一个列表项困扰了我将近一天的时间,这是初学者必须经历的。
我总结出两种方式,分享给大家参考,也希望大家能够提出自己的看法。
方法一:使用ContextMenu
*为 ListView 的所有 item 注册 ContextMenu
*重写onCreateContextMenu(Cont
listview长按删除
listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent,...
首先要继承OnItemLongClickListener
public class Set_Music extends ListActivity implements OnItemLongClickListener{
然后设置权限:
getListView().setOnItemLongClickListener(this);
public boolean onItemLong...