Wie kann ich Sie entfernen / löschen eines dynamisch erzeugten button in Android?
Also ich erzeugt einige button. Die zahlen, es hängt vom Benutzer ab (beim anklicken einer Schaltfläche erstellen Sie eine neue).
Dies ist, wie ich es gemacht:
RelativeLayout layout = (RelativeLayout) findViewById(R.id.layoutcprompt);
RelativeLayout.LayoutParams OBJ = new RelativeLayout.LayoutParams (140,80);
if ((commandsi%6)==0) {adjust=adjust+86; commandsi=1;}
OBJ.leftMargin =(140*(commandsi-1))+10;
OBJ.topMargin =250+adjust;
Button command = new Button(this);
command.setLayoutParams(OBJ);
command.setId(ID);
command.setText(edittxt.getText().toString());
edittxt.setText("");
command.setBackgroundResource(R.drawable.costum_button);
command.setTextColor(Color.WHITE);
command.setTextSize(14);
layout.addView(command);
command.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
Button b = (Button)view;
scommand=b.getText().toString();
}
});
command.setVisibility(View.VISIBLE);
Möchte ich entfernen/löschen, aber ich weiß nicht, wie.... Ich gab Ihnen eine eindeutige id, aber ich habe noch keine Ahnung, wie kann ich Sie entfernen/
Du musst angemeldet sein, um einen Kommentar abzugeben.
Kann ich nicht Kommentar einem anderen Beitrag, aber mit
könnte beinhalten eine implizite Speicherverlust auf
this
! (kann sein dasActivity
). LieberContext
Objekt. Oder entfernen Sie die Schaltfläche mindestens.Dann, da haben Sie die Eltern Ihrer
Button
. Entfernen Sie es einfach:Make-Befehl eine Globale variable. Dann können Sie später darauf zugreifen, und rufen Sie
command.setVisibility(View.GONE);
Damit an der Spitze der Klasse Datei, die Sie erklären würde, die Globale variable:
Entfernen Sie dann die Neudefinition später und stattdessen weisen Sie der globalen variable:
Dann, wenn Sie wollen, es zu verbergen, rufen Sie:
Versuchen, über die Dokumentation, 5 Sekunden von Forschung kann dazu führen, dass die RemoveView Methode.
Update
Wenn Sie eine null-Zeiger-Ausnahme auf dieser Linie, bedeutet, dass Ihre
layout
null ist, nicht Ihrecommand
. Machen Sie Ihrelayout
Globale variable für die Klasse.Auch darauf achten, dass verschiedene Variablen für jede der von Ihnen erstellten buttons. Wenn Sie eine Globale variable, und erstellen Sie 10 buttons, die mit der gleichen variable nur eine Referenz auf das zuletzt erstellte. Wenn du genau erklären, wenn Sie möchten, entfernen Sie die-Taste, können wir Ihnen weiter helfen.
Als ein Beispiel, wenn Sie möchten, entfernen Sie die Schaltfläche, wenn der Benutzer darauf klickt, können Sie Ihre clickListener:
Einer anderen Implementierung, die den anderen helfen kann, die in diesem thread ist, dass können Sie in Erwägung ziehen, werden alle untergeordneten Elemente des übergeordneten layout. Sobald Sie die Ansicht übergeordnete (was ich davon ausgehen ist ein layout-container),können Sie entfernen alle child-Elemente.
Können Sie es auch tun, wie dies für die Sicherheit Zweck:
Können Sie auch diese snipper
Für das Hinzufügen der Schaltfläche
Zum entfernen der Schaltfläche