So blasen Sie mehrere Instanzen eines Layouts mit derselben ID in einem aufgeblasenen Layout auf
Ich habe ein LinearLayout mit vielen verschachtelten LinearLayouts und TextViews
Meine Hauptaktivität bläst das Haupt-LinearLayout auf,
Dann lade ich Daten von einem Server und füge basierend auf den empfangenen Daten mehrere Layouts in einen Platzhalter ein (LinearLayout)
Dies ist eine einfache Nachrichtenseite, auf der ich mit den Nachrichten verknüpfte Bilder lade und sie in einem anfangs leeren LinearLayout platziere.
Jedes Bild hat die folgenden Informationen: Titel (TextView), Datum (TextView), Bild (ImageView). Ich mache also eigentlich Folgendes:
*Bitte beachten Sie, dass dies nur das Wesentliche ist, das in der Frage codiert ist, in der ich alle Versuche ausgeführt habe -> catch ... if / else .... etc
public void addImages(JSONArray images){
ViewGroup vg = (ViewGroup) findViewById(R.id.imagesPlaceHolder);
// loop on images
for(int i =0;i<images.length;i++){
View v = getLayoutInflater().inflate(R.layout.image_preview,vg);
// then
I think that here is the problem
ImageView imv = (ImageView) v.findViewById(R.id.imagePreview);
TextView dt = (TextView) v.findViewById(R.id.dateHolder);
TextView ttl = (TextView) v.findViewById(R.id.title);
// then
dt.setText("blablabla");
ttl.setText("another blablabla");
// I think the problem is here too, since it's referring to a single image
imv.setTag( images.getJSONObject(i).getString("image_path").toString() );
// then Image Loader From Server or Cache to the Image View
}
}
Der obige Code funktioniert gut für ein einzelnes Bild
Aber für mehrere Bilder funktioniert der Image Loader vermutlich nicht, weil alle ImageViews (mehrfach aufgeblasen) dieselbe ID haben