Das angegebene Kind hat bereits einen Elternteil

7

Ich habe die AlertDialog mit dem Builder erstellt. Es zeigt, wenn wir die Methode show() aufrufen. Ich habe die Schaltfläche Abbrechen in diesem Dialogfeld. Ich kann diesen Dialog abbrechen, indem ich auf die Abbrechen-Schaltfläche klicke. Mein Problem ist, sobald ich die Anzeige des Dialogs abgebrochen habe, kann ich den Dialog nicht mehr anzeigen. Es löst eine Ausnahme wie:

%Vor%     
Kandha 09.09.2010, 06:58
quelle

4 Antworten

17

Zeigen Sie nicht denselben Dialog an, erstellen Sie einen neuen.

Dies passiert, weil Sie versuchen, den Dialog, der bereits erstellt wurde (wahrscheinlich bei onCreate ), erneut zu verwenden und einmal zu verwenden. Es gibt kein Problem bei der Wiederverwendung eines Dialogfelds, aber wie in der Frage hat das angegebene Kind (die Ansicht) bereits einen Elternteil (das Dialogfeld). Sie können entweder fortfahren, indem Sie das übergeordnete Element entfernen oder ein neues übergeordnetes Element erstellen: -

%Vor%     
Konstantin Burov 09.09.2010 08:37
quelle
3

Entfernen Sie den vorherigen Dialog, bevor Sie einen neuen hinzufügen. Wenn Sie jedes Mal einen neuen Dialog hinzufügen, bleibt dieser in Ihrem Speicher und Ihre App verbraucht mehr Batterie.

Rufen Sie die Ansicht ab oder entfernen SieAllViews () in dem Layout, in dem Sie Ihren Dialog hinzufügen.

    
AZ_ 15.03.2011 06:38
quelle
3

Sie müssen das tun:

%Vor%

Sie können diesen Fehler umgehen durch:

%Vor%     
E Player Plus 11.01.2013 17:02
quelle
0

Verschieben Sie den gesamten Code des Builders außerhalb der onCreateDialog -Methode.

Zum Beispiel hier ist der Android Dialoge Guide aktualisiert:

%Vor%     
Simon 03.02.2015 23:16
quelle

Tags und Links