SQLite
 sql >> Datenbank >  >> RDS >> SQLite

Android:So laden Sie ein Bild dynamisch vom Server mit seinem Namen von SQlite

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.