Wenn Sie Bilder von SQlite laden möchten, schlage ich vor, dass Sie die Datei/den Dateispeicherort speichern, wenn die Daten lokal gespeichert sind. Für die Anzeige eines einzelnen Bildes in allen Bildansichten liegt es daran, dass Sie nur ein einzelnes Bild laden möchten Um alle Ihre IDs in ein Array zu legen und an die DB zu übergeben, sollte die DB-Abfrage auch ein Array/eine Arrayliste von Bildpositionen zurückgeben, die Sie mit einer for loop
in Ihre Bildansichten laden sollten z. B. habe ich eine Abfrage, die eine Reihe von Bildern aus meiner SQLite-Datenbank lädt. Dies zeigt Unterkategoriebilder einer bestimmten Kategorie namens Schuhe an, sodass wir Bilder von smart shoes
haben , Casual shoes
und mehr übergebe ich eine an Id als Parameter
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;
}
auf der empfangsseite durchquere ich dann meine araylist
for(int i = 0; i <getAllSubCategories.size(); i++ )
{
imageView.setImageUri(getAllSubCategories.get(i).getmCategoryImgPath())
}
Mit dieser Methode setzen Sie Bilder auf alle Ihre Bildansichten.