Jeśli chcesz załadować obrazy z SQlite, sugeruję zapisanie lokalizacji pliku/pliku, jeśli dane są przechowywane lokalnie, aby wyświetlić pojedynczy obraz we wszystkich widokach obrazów, ponieważ ładujesz tylko jeden obraz, możesz chcieć aby umieścić wszystkie identyfikatory w tablicy i przekazać je do bazy danych, zapytanie bazy danych powinno również zwrócić tablicę/listę lokalizacji obrazów, które należy załadować do widoków obrazów za pomocą for loop
np. mam zapytanie, które ładuje kilka obrazów z mojej bazy danych SQLite, wyświetla to obrazy podkategorii określonej kategorii o nazwie buty, więc mamy obrazy smart shoes
, Casual shoes
i więcej, jako parametr przekazuję identyfikator
public ArrayList<CategoryItem> getAllSubCategories(int mtargetID) throws SQLException{
ArrayList<CategoryItem> myshoes = new ArrayList<>();
// Select All Query
String sQuery = " SELECT "+Constant.CATEGORY_TB_ID+", "+Constant.SUB_DESCRIPTION+
", "+Constant.SUB_IMAGEPATH+" FROM "+Constant.CATEGORY_TABLE+
" INNER JOIN "+Constant.SUB_CATEGORY_TABLE+" ON "+Constant.CATEGORY_TB_ID +" = " +Constant.SUB_CATEGORY_FK
+ " WHERE "+Constant.CATEGORY_TB_ID +" = ?";
String[] args = new String[1];
args[0] = String.valueOf(mtargetID);
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery(sQuery, args);
// looping through all rows and adding to list
if (cursor.moveToFirst()) {
do {
CategoryItem myShoesItem = new CategoryItem();
//my shoe image path on external storage
myShoeItem.setmCategoryImgPath(cursor.getString(2));
//i add my image paths to my array list
myshoes.add(myShoeItem);
} while (cursor.moveToNext());
}
// return my arraylist for display into my imageview
return mshoes;
}
po stronie odbiorczej przechodzę następnie przez moją araylistę
for(int i = 0; i <getAllSubCategories.size(); i++ )
{
imageView.setImageUri(getAllSubCategories.get(i).getmCategoryImgPath())
}
za pomocą tej metody ustawisz obrazy na wszystkie swoje widoki obrazów.