android 在/storage/emulated/0/AudioProject/MedioVideo/创建一个数据库,将一个List<string>的内容数据保存到这个数据库中,并且重新读取该数据库,将数据读取出来保存到List<string>中
时间: 2024-09-20 18:11:27 浏览: 49
android 获取手机中的所有图片或某一目录下的图片方法
在Android上操作数据库通常使用SQLite,它是一个轻量级的关系型数据库管理系统。首先,你需要在`/storage/emulated/0/AudioProject/MedioVideo/`目录下创建一个SQLite数据库文件。这里我们假设已有一个名为`MedioVideo.db`的数据库。以下是步骤:
**步骤1:创建数据库表**
在项目中创建一个SQLiteOpenHelper类,例如`DatabaseHelper.java`,并设置一个对应的SQLiteOpenHelper子类:
```java
public class DatabaseHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "MedioVideo.db";
private static final int DATABASE_VERSION = 1;
private static final String TABLE_NAME = "data_table";
private static final String COLUMN_DATA = "data";
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
String createTableQuery = "CREATE TABLE " + TABLE_NAME + " ("
+ COLUMN_DATA + " TEXT)";
db.execSQL(createTableQuery);
}
// 其他方法...
}
```
**步骤2:保存List<String>到数据库**
在需要的地方,比如Activity或Fragment中,你可以通过一个ContentProvider来插入数据:
```java
List<String> dataList = ...; // 你的字符串列表
// 获取数据库实例
DatabaseHelper dbHelper = new DatabaseHelper(getBaseContext());
SQLiteDatabase db = dbHelper.getWritableDatabase();
for (String data : dataList) {
ContentValues contentValues = new ContentValues();
contentValues.put(COLUMN_DATA, data);
db.insert(TABLE_NAME, null, contentValues);
}
db.close();
```
**步骤3:从数据库读取数据到List<String>**
然后,在需要读取数据的时候,可以这样做:
```java
Cursor cursor = dbHelper.rawQuery("SELECT * FROM " + TABLE_NAME, null);
if (cursor.moveToFirst()) {
List<String> retrievedData = new ArrayList<>();
do {
String rowData = cursor.getString(cursor.getColumnIndex(COLUMN_DATA));
retrievedData.add(rowData);
} while (cursor.moveToNext());
cursor.close();
}
// 现在retrievedData就是从数据库中读取的数据
```
阅读全文