当前位置: 首页 > 知识库问答 >
问题:

在android中显示sqlite数据库中的图像?

谢胤
2023-03-14

我想在我的应用程序中显示来自sqlite数据库的图像。我的要求是显示文本视图及其相关图像。我将我的数据库文件保存在资产文件夹中。但实际上我的图像存储在服务器的“allimages”文件夹中。

我的数据库列(我保留的assets文件夹中的db)如下所示:

S.无描述

1 div style=“文本对齐:对齐;”

2 div style="文本对齐:对齐;"

现在我的问题是在我的数据库中,图像路径存储在描述列中。在android中,我们无法在drawable文件夹中创建新文件夹并引用图像路径。我的数据库由2000到3000条记录组成。现在我无法更改本地数据库中图像的路径。那么,我应该在我的项目文件夹中的哪里创建“allimages”文件夹,以及如何引用这些图像?任何人都可以帮我解决这个问题……我正在努力解决这个问题。。。

提前感谢......

共有1个答案

钱黎明
2023-03-14

根据您上面的评论:

您可以通过循环更新数据库中的所有元素

看起来您的描述是唯一的,所以不幸的是,您需要从数据库中提取数据,将其放入某种列表中,修改列表以更改路径,然后用修改后的值更新数据库。

注意:您只需要执行一次,但是如果您有数千条记录要更新,则需要时间。

下面是更新所有路径所需执行步骤的一些伪代码。

获取所有记录,提取数据并修改路径

//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,所以可能会有一些小的拼写错误。但希望这能让你大致了解如何更新每个记录。

 类似资料:
  • 我试着使用这种方法:Android-登录textView后显示sqlite数据库中的用户名 但我得到一个错误: 我想要的是在成功登录后在UserPanelActivity中显示当前昵称。 用户面板活动: DataBaseHelper: UserPanel.xml 登录活动: 谢谢你的帮助!:)

  • 被一个问题缠住了。我是android开发的新手。我的问题是我有一个SQLite数据库,我正在其中保存映像和一些数据,但当我检索这些数据时,映像没有显示在ListView中。其他数据正在被推翻。 这是我的自定义列表布局 null 这是我的自定义适配器 } 这是activity 这是数据列表

  • 我怀疑原因可能是在ViewHolder中连接字符串,根据我所读到的(检查底部的引用),这应该使用带有占位符的资源字符串来完成,例如 应替换为 其中包括。 https://developer.android.com/guide/topics/resources/string-resource#formattingandstyling https://developer.android.com/ref

  • 因此,我最近开始学习Android编程,并一直在学习本教程,学习如何在SQLite数据库中插入、更新、删除和查看数据。现在,我还想在这个SQLite数据库中添加一个搜索功能,在这个数据库中,我可以搜索一个名称(我使用的列是name、contact和DOB),如果搜索到的名称与数据库中现有的名称匹配,则在应用程序中显示数据库中的一行/条目。我想这可以以类似于查看/更新数据库的方式来完成,所以我试着用

  • 问题内容: 我正在使用jdbc编写程序,该程序将成为数据库的接口(类似于CRUD应用程序)。我假设我必须编写一个类(例如),该类将对数据库执行所有操作(以及可能会简化为这些操作的某些其他逻辑)。用户界面由一组表和一些按钮组成。要使用Jtable,我需要实现一个类(例如),它是AbstractTableModel的子类。因此,此类将向用户显示我的数据。我需要为数据库架构中的所有表实现这种模型。我不想

  • 这是我的数据库代码,我想从我的数据库中检索名称,并将其显示在listview中,在下面发布的另一个java文件中显示为profilelist.jar。但是我不能这样做,请告诉我这段代码是否正确? profileList.java 我在a.vaccination.datahandler.getTitle(datahandler.java:115)和a.vaccination.profilelist.