把我写一个SimpleCusorAdapter用于数据库增删改查的demo
时间: 2024-03-01 08:51:53 浏览: 25
好的,下面是一个使用SimpleCursorAdapter实现数据库增删改查的示例代码:
```java
public class MainActivity extends AppCompatActivity {
private ListView mListView;
private SQLiteDatabase mDatabase;
private Cursor mCursor;
private SimpleCursorAdapter mAdapter;
private static final String DB_NAME = "my_db";
private static final String TABLE_NAME = "my_table";
private static final int DB_VERSION = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 初始化数据库
mDatabase = new MyDatabaseHelper(this, DB_NAME, null, DB_VERSION).getWritableDatabase();
// 查询数据库
mCursor = mDatabase.query(TABLE_NAME, null, null, null, null, null, null);
// 创建SimpleCursorAdapter
mAdapter = new SimpleCursorAdapter(this, R.layout.list_item, mCursor,
new String[]{"_id", "name", "age"}, new int[]{R.id.tv_id, R.id.tv_name, R.id.tv_age},
0);
// 设置ListView的适配器
mListView = findViewById(R.id.list_view);
mListView.setAdapter(mAdapter);
// 设置ListView的点击事件,用于删除某一行数据
mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
mDatabase.delete(TABLE_NAME, "_id=?", new String[]{String.valueOf(id)});
mCursor = mDatabase.query(TABLE_NAME, null, null, null, null, null, null);
mAdapter.changeCursor(mCursor);
}
});
// 设置添加数据的按钮点击事件
Button addButton = findViewById(R.id.btn_add);
addButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ContentValues values = new ContentValues();
values.put("name", "张三");
values.put("age", 18);
mDatabase.insert(TABLE_NAME, null, values);
mCursor = mDatabase.query(TABLE_NAME, null, null, null, null, null, null);
mAdapter.changeCursor(mCursor);
}
});
// 设置更新数据的按钮点击事件
Button updateButton = findViewById(R.id.btn_update);
updateButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ContentValues values = new ContentValues();
values.put("age", 20);
mDatabase.update(TABLE_NAME, values, "name=?", new String[]{"张三"});
mCursor = mDatabase.query(TABLE_NAME, null, null, null, null, null, null);
mAdapter.changeCursor(mCursor);
}
});
}
@Override
protected void onDestroy() {
super.onDestroy();
// 释放资源
mCursor.close();
mDatabase.close();
}
private static class MyDatabaseHelper extends SQLiteOpenHelper {
private static final String CREATE_TABLE = "CREATE TABLE IF NOT EXISTS " + TABLE_NAME + "(_id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER)";
public MyDatabaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_TABLE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
}
```
这个示例代码中,我们使用了SimpleCursorAdapter实现了一个简单的数据库增删改查功能。具体实现过程如下:
1. 在MainActivity中创建数据库mDatabase,并查询所有数据mCursor。
2. 使用SimpleCursorAdapter将mCursor中的数据与ListView进行绑定,同时设置ListView的点击事件用于删除某一行数据。
3. 设置添加数据的按钮点击事件,向数据库中插入一条数据,并重新查询所有数据并更新ListView。
4. 设置更新数据的按钮点击事件,更新数据并重新查询所有数据并更新ListView。
5. 在MyDatabaseHelper中创建数据库表。
6. 在MainActivity的onDestroy方法中释放资源,关闭mCursor和mDatabase。
需要注意的是,这个示例代码使用的是SQLiteOpenHelper来创建和升级数据库。如果你需要使用其他方式创建和升级数据库,可以根据实际情况进行修改。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)