Android studio中调用数据库的listview根据点击的列表位置删除数据库中对应的数据

 数据库中可以用游标找到对应的那一条数据,lietview可以用position得到点击到的item位置

先设置点击事件,点击获得当前item的位置position,用cursor.moveToPosition(int position),把cursor移到数据库中和列表的item相对应的位置,然后索引到他的唯一标识(我这里是id),用id删除这条数据

    public int deleteDbByQueryPosition(int query_position){//根据列表点击的行位置删除数据
        SQLiteDatabase db=getWritableDatabase();
        Cursor queryDelete = db.query(TABLE_NAME_STUDENT, null, null, null, null, null, null);
        queryDelete.moveToPosition(query_position);//把游标移到点击的item行数一样的数据库那一行
        String ID = queryDelete.getString(queryDelete.getColumnIndexOrThrow("id"));//拿到那一行的id值
        return db.delete(TABLE_NAME_STUDENT,"id like ?",new String[]{ID});//返回值是删除的条数

}

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,你需要创建一个数据库并将数据存储在其。你可以使用SQLite数据库,它是Android默认的关系型数据库。以下是一个简单的创建和插入数据的代码示例: ``` public class DBHelper extends SQLiteOpenHelper { private static final int DATABASE_VERSION = 1; private static final String DATABASE_NAME = "myDatabase"; private static final String TABLE_NAME = "myTable"; private static final String KEY_ID = "id"; private static final String KEY_NAME = "name"; private static final String KEY_AGE = "age"; public DBHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase db) { String CREATE_TABLE = "CREATE TABLE " + TABLE_NAME + "(" + KEY_ID + " INTEGER PRIMARY KEY," + KEY_NAME + " TEXT," + KEY_AGE + " INTEGER" + ")"; db.execSQL(CREATE_TABLE); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME); onCreate(db); } public void addData(String name, int age) { SQLiteDatabase db = this.getWritableDatabase(); ContentValues values = new ContentValues(); values.put(KEY_NAME, name); values.put(KEY_AGE, age); db.insert(TABLE_NAME, null, values); db.close(); } } ``` 在上面的示例,我们创建了一个名为myDatabase的数据库和名为myTable的表。表有三个列: id, name和age。addData()方法用于向表插入数据。 现在你需要在你的Activity使用DBHelper类来从数据库获取数据并将其显示在ListView。以下是示例代码: ``` public class MainActivity extends AppCompatActivity { private ListView listView; private List<String> dataList = new ArrayList<>(); private ArrayAdapter<String> adapter; private DBHelper dbHelper; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listView = findViewById(R.id.listView); adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, dataList); listView.setAdapter(adapter); dbHelper = new DBHelper(this); getData(); } private void getData() { SQLiteDatabase db = dbHelper.getReadableDatabase(); String[] projection = {DBHelper.KEY_NAME, DBHelper.KEY_AGE}; Cursor cursor = db.query(DBHelper.TABLE_NAME, projection, null, null, null, null, null); if (cursor.moveToFirst()) { do { String name = cursor.getString(cursor.getColumnIndex(DBHelper.KEY_NAME)); int age = cursor.getInt(cursor.getColumnIndex(DBHelper.KEY_AGE)); dataList.add(name + " (" + age + ")"); } while (cursor.moveToNext()); } cursor.close(); db.close(); adapter.notifyDataSetChanged(); } } ``` 在上面的示例,我们创建了一个ListView和一个ArrayAdapter来显示数据。我们还使用DBHelper类从数据库获取数据,并将其添加到dataList。最后,我们调用adapter.notifyDataSetChanged()来通知ListView更新数据。 这样,你就可以使用数据库数据写入ListView并显示了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值