根据您上面的评论:
您可以通过循环更新数据库中的所有元素
看起来您的描述是独一无二的,所以不幸的是,您需要从数据库中提取数据,将其放入某种列表中,修改列表以更改路径,然后使用修改后的值更新数据库。
注意:您只需要这样做一次,但如果您有数千条记录要更新,则需要一些时间。
以下是更新所有路径所需执行的步骤的一些伪代码。
获取所有记录,提取数据并修改路径
//Get all the records
Cursor allRecords = database.query(Table_Name, null, null, null, null, null, null);
//Extract the data from the Cursor and create a list
List<SomeDataObject> listOfModifiedDataObjects = new ArrayList<SomeDataObject>();
allRecords.moveToFirst();
while(!allRecords.isAfterLast())
{
int id = allRecords.getInt(allRecords.getColumnIndex("NameOfIDColumn"));
String description = allRecords.getString(allRecords.getColumnIndex("NameOfDescriptionColumn"));
//Modify the description to change the path of the src...
description = description.replace("allimages", "some/other/path/allimages");
//Create the data object and store it in the list
SomeDataObject tempObj = new SomeDataObject();
tempObj.ID = id;
tempObj.Description = description;
listOfModifiedDataObjects.add(tempObj);
}
使用修改后的数据更新数据库
注意:这应该在一些可以访问 SQLiteDatabase 对象的数据库帮助器类中完成
//Iterate through all the modified data objects
for(SomeDataObject curObj: listOfModifiedDataObjects)
{
ContentValues values = new ContentValues();
//Set the new description into the content values object
values.put("NameOfDescriptionColumn", curObj.Description);
//Update the table with the new value. The record that gets updated is based on the curObj.ID.
//In this case, I'm guessing your id column is named "_id"
database.update(TABLE_NAME, values, "_id = ?", new String[]{String.ValueOf(curObj.ID)});
}
我没有编译任何这段代码,也没有手边的 IDE,所以可能有一些小错别字。但希望这能让您大致了解如何更新每条记录。