I have made an app, which allows users to add favourites to a SQLite database which in turn loads the information into a favourites arraylist, which is displayed in the favourites activity. When the user clicks 'add to favourites button', this function is executed:
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
}
}
Clear favourites arraylist just before calling loadFavourites()
or add favouritesarraylist.clear
in the first line of loadFavourites()