Ich erstelle eine Version des beliebten Minesweeper-Spiels für Android. Ich versuche, eine Schaltfläche programmgesteuert zu erstellen und sie einem RelativeLayout hinzuzufügen. Ich habe etwas sehr ähnlich hier gefunden: How do I programmatically add buttons into layout one by one in several lines?Erstellen Sie eine Schaltfläche und fügen Sie sie einer Ansicht programmgesteuert hinzu
Wenn ich versuche, es zu laufen ich eine Nullpointer bekommen:
RelativeLayout layout1 = (RelativeLayout) findViewById(R.layout.game);
Hier ist der ganze Code-Block:
public void create() {
RelativeLayout layout1 = (RelativeLayout) findViewById(R.layout.game);
for(int i = 0; i < gridSize; i++) {
if(grid[i] == 0) { //if grid pos. indicates an empty cell
Button empty = new Button(this);
empty.setBackgroundResource(R.drawable.emptybutton); //set background to empty
empty.setId(i); //set id to value of i
empty.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
layout1.addView(empty); //add the button to the relativeLayout view
//((Button) findViewById(i)).setOnClickListener(emptyListener);
}
Vielen Dank im Voraus für alle Antworten
Ich denke, dein Problem kann deine game.xml nicht erreichen. Können Sie bitte Ihre Struktur (Umriss) angeben? – guness
Ich verwende ein Array von Ints, um das Minesweeper-Feld zu simulieren. zum Beispiel gibt ein Wert von 9 an Position [2] an, dass sich eine Mine auf Position 2 auf dem Minesweeper-Feld befindet. dann verwende ich if-Anweisungen, um verschiedene Schaltflächen zu generieren, d. h. wenn eine Schaltfläche eine Mine darstellt, wird Position [2] == erstellt. 9. Ich versuche, diese Schaltflächen zu einem relativen Layout hinzuzufügen, das das Minesweeper-Feld darstellt. Hilft das? – DanielFitzgerald123