Dynamisch hinzufügen Bildansicht zu layout
Jedes mal, wenn ich gehe, um ein Bild hinzuzufügen Blick auf meine Lineare-Layout dynamisch bekomme ich eine null-pointer-exception.
LinearLayout tables = (LinearLayout) findViewById(R.id.table);
for(int i = 0; i < data.length; i++){
ImageView image = new ImageView(getApplicationContext());
try{
int imgID = getResources().getIdentifier(data[i], "drawable", "package");
image.setImageResource(imgID);
}catch(Exception e){
int imgID = getResources().getIdentifier("nia", "drawable", "package");
image.setImageResource(imgID);
}
tables.addView(image); //NULL POINTER THROWN HERE
}
Wenn ich Debuggen, die imgID einen Wert hat, also ich kenne seine arbeiten. Ich verstehe einfach nicht, warum seine "null", wenn
tables
null ist, wird Sie wahrscheinlich hadven nichtsetContentView
oder R. id.Tisch ist nicht in Sicht
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn dies die Linie, die bewirkt, dass die Null-Zeiger-Ausnahme:
Dann
tables
null ist, einfach findViewById() nicht finden, der einer beliebigen Ansicht mit der idR.id.table
im aktuellen layout angezeigt werden.(Wenn Sie wollen helfen, herauszufinden, warum
tables
null ist, poste bitte das layout, die Sie passieren zusetContentView()
)Hinzugefügt, aus den Kommentaren
Hier ist eine Allgemeine Methode zur Erstellung einer "PopupWindow". Dieser verwendet eine LayoutInflator aufblasen, um das layout so, dass wir darauf zugreifen können, um dynamisch neue Elemente hinzufügen, das layout. (Beachten Sie, dass wir den Rahmen finden, um
popupLayout.findViewById(...)
):Verstehen, dass das root-element in
popup.xml
sollte einebackground
Attribut definiert sich andernfalls das Fenster ist standardmäßig transparent.findViewById(R.id.table)
null zurück... dafürtables
null ist.window
), dann verwenden Siewindow.findViewById(R.id.table)
.um zu überprüfen, ob es gibt ein problem mit Ihrer XML-layout können Sie versuchen zu definieren, das layout programmatisch
Und fügt diese Ansicht wie ein ContentView