ImageView Duplizieren per Schleife

  • 3 Antworten
  • Letztes Antwortdatum
G

Geforcer

Neues Mitglied
0
Hallo Leute habe vor mir eine Anzeige zu basteln in der mir verbleibene Schüsse in einem LinearLayout angezeigt werden.

Hier mein Code:
Code:
        ImageView[] shots = new ImageView[AMMO];
        ImageView testview= (ImageView)findViewById(R.drawable.patrone);

        for (int i = 0; i<shots.length-1; i++) {
                    shots[i] = new ImageView(this);
                    shots[i]  = testview;
                    ammoLinear.addView(shots[i]);
                    
                }

Laut Debugger habe ich nach der Zeile

shots = testview;

bei shots[0] eine id hinterlegt.
aber sobald er zur nächsten Zeile wechselt, ist shots[0] = null und das Programm beendet mit einer NullPointerException.
Wie kann das sein das er seinen hinterlegten Wert plötzlich verliert?
Was mache ich falsch?

LG Geforcer
 
Ich würde jetzt einfach vermuten, dass R.drawable.patrone keine ImageView ist.
Somit findet er keine View, testview ist also null, dann setzt du also shots = null.

Somit läuft da alles korrekt ab.
 
R.drawable.patrone ist ein ImageView.

habe das jetzt anders gelöst. habe R.drawable.patrone in eine XML Datei eingebettet und per Inflator shots[] zugewiesen.

Weiß zwar immer noch nicht warum meine erste Methode nicht funktioniert hat aber wenigstens habe ich mein gewünschtes Ergebnis.
 
Wobei R.drawable.patrone trotzdem nicht wie eine View klingt sondern halt wie ein Drawable, also ein Bild.

Ich dachte die IDE macht das automatisch.
 
Zurück
Oben Unten