Se vuoi caricare immagini da SQlite allora ti suggerisco di salvare il file/la posizione del file se i dati sono archiviati localmente, per la visualizzazione di una singola immagine su tutte le visualizzazioni è perché stai caricando solo una singola immagine, potresti voler per mettere tutti i tuoi ID in un array e passarlo al db, la query db dovrebbe anche restituire un array/arraylist di posizioni di immagine che dovresti caricare nelle viste delle tue immagini usando un for loop
ad esempio, ho una query che carica un mucchio di immagini dal mio database SQLite, questo mostra le immagini della sottocategoria di una determinata categoria denominata scarpe, quindi abbiamo immagini di smart shoes
, Casual shoes
e più passo un Id come parametro
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;
}
sul lato ricevente, quindi, passo attraverso la mia araylist
for(int i = 0; i <getAllSubCategories.size(); i++ )
{
imageView.setImageUri(getAllSubCategories.get(i).getmCategoryImgPath())
}
con questo metodo imposterai le immagini su tutte le tue visualizzazioni di immagini.