gpt4 book ai didi

java - 如果数据库包含现有数据,如何仅在 Activity 中调用一次方法?

转载 作者:行者123 更新时间:2023-11-30 00:12:24 25 4
gpt4 key购买 nike

我制作了一个应用程序,它允许用户将 Collection 夹添加到 SQLite 数据库,然后将信息加载到 Collection 夹数组列表中,该数组列表显示在 Collection 夹 Activity 中。当用户单击“添加到 Collection 夹按钮”时,将执行此功能:

 public void loadFavourites() {

SQLiteDatabase db = dbHelper.getReadableDatabase(); //Get the database from which to read values

//Get columns and create a cursor database query
String[] columns = {"favouriteId", "title", "owner", "url_m", "ownerPic", "description", "dateTaken"};
Cursor cursor = db.query("favourites", columns, null, null, null, null, "favouriteId");

Log.d("FavouritesDB", "" + cursor.getCount()); //Displays cursor count in the logcat

cursor.moveToFirst();

while (!cursor.isAfterLast()) {

favID = cursor.getInt(0);
title = cursor.getString(1);
owner = cursor.getString(2);
url_m = cursor.getString(3);
ownerPic = cursor.getString(4);
description = cursor.getString(5);
date = cursor.getString(6);

ImageInfo favourite = new ImageInfo();

favourite.dateTaken = date;
favourite.description = description;
favourite.ownerPic = ownerPic;
favourite.url_m = url_m;
favourite.owner = owner;
favourite.title = title;
NetworkMgr.getInstance(this).favouritesImageList.add(favourite);

cursor.moveToNext(); // Move to next entry
}
}

这成功地将图像添加到 Collection 夹数组列表中,并在用户访问 Collection 夹 Activity 页面时显示它。

但是,每次关闭并重新打开应用程序时, Collection 夹 Activity 都是空的,并且不会显示已添加到数据库中的 Collection 夹,因为尚未调用 loadFavourites 方法。

但是,如果我在 Collection 夹 Activity onCreate() 中调用 loadFavourites 方法,每次加载页面时,数据库中的 Collection 夹都会再次添加到数组列表中,因此这会创建每个 Collection 夹项目的副本。

请有人建议我如何修复我的循环,以便在我的应用程序启动时,仅添加数据库中现有的 Collection 项,而不是在每次加载 Activity 时再次添加到数组列表中?

最佳答案

在调用 loadFavourites() 之前清除 Collection 夹数组列表或者在loadFavourites()

的第一行添加 favouritesarraylist.clear

关于java - 如果数据库包含现有数据,如何仅在 Activity 中调用一次方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47946629/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com