Gibt es eine einfache Möglichkeit, den Inhalt eines Dialogfelds in Android zu ändern, ohne das Dialogfeld neu erstellen zu müssen? Ich weiß, dass Activity.onCreateDialog() nur einmal aufgerufen wird, wenn das Dialogfeld zuerst erstellt werden muss, und hier legen Sie zunächst den Inhalt des Dialogfelds fest. Ich muss später den Inhalt des Dialogs ändern, also frage ich mich, was der richtige Weg ist, dies zu tun.Ändern Sie den Inhalt eines Android-Dialogfelds nach der Erstellung
11
A
Antwort
8
Die onPrepareDialog()
method wird aufgerufen, kurz bevor die Dialog
allowing you to update it appropriately angezeigt wird.
Es ist die gleiche int
ID wie onCreateDialog()
und die Dialog
, die Sie in dieser Methode erstellt übergeben.
@Override
protected void onPrepareDialog(int id, Dialog dialog) {
//Always call through to super implementation
super.onPrepareDialog(id, dialog);
switch (id) {
case DIALOG_TIME:
((AlertDialog)dialog).setMessage("The time is " + new Date());
break;
}
}
0
oben funktionierte nicht für mich. Rufen removeDialog
funktioniert, ohne die AlertDialog
Verwandte Themen
- 1. ändern Heroku Region nach der Erstellung
- 2. So generieren Sie ein vorgefülltes ausfüllbares PDF, ändern Sie den Inhalt und analysieren Sie den Inhalt
- 3. Ändern Sie den Inhalt eines Datenrahmens in R
- 4. Ändern Sie den Inhalt eines div mit JavaScript
- 5. Inhalt eines Frames ändern
- 6. Führen Sie iSRoll nach Dom Inhalt ändern
- 7. WSS3 - Festlegen eines Standardwerts für ein SPFieldType.DateTime nach der Erstellung
- 8. AfterInsertRow, setCell. programmatisch ändern Sie den Inhalt der Zelle
- 9. Dynamisch ändern Sie den Inhalt der Kopfzeile bei Statuswechsel
- 10. Ändern Sie den Inhalt der Debug-Ansicht in Eclipse
- 11. Ändern Sie den Inhalt der Zelle in das Eingabefeld
- 12. Ändern Sie den Inhalt der span-Klasse mit JavaScript
- 13. Optimierung der Erstellung eines Formulars
- 14. So zentrieren Sie den Inhalt eines div
- 15. Wie entfernen Sie den Inhalt eines Andockvolumes?
- 16. Ändern Sie den Text nach dem Bildlauf
- 17. Drucken Sie den Inhalt eines HTML-DIV
- 18. Finden Sie den Inhalt eines Verzeichnisses
- 19. Löschen Sie den Inhalt der Datei nach Zeile == "xxxxxxx"
- 20. So entfernen Sie den Inhalt der Zeichenfolge nach einem Zeichen
- 21. So zeigen Sie den Inhalt eines Megafunction-RAM von Quartus nach der Simulation an
- 22. Wie kann ich den Inhalt eines Labels nach einer Sekunde mit JavaFX ändern?
- 23. FirebaseRecyclerAdapter - wie Datenbankabfrage nach der Erstellung
- 24. Ändern Sie den Wert eines Vektorelements
- 25. Yii2 Benutzernamen bei der Erstellung ändern
- 26. Ändern Sie den Bildlauf eines versteckten div
- 27. Ändern Sie den Hintergrund eines bestimmten Präferenzelements
- 28. den Inhalt eines regex und löschen Sie sie, effizient
- 29. Ändern Sie den TransactionScope IsolationLevel nach Abschluss der Transaktion
- 30. Ändern Sie den Visual Studio-Installationsordner nach der Installation
zu entlassen Ich weiß nicht, wie ich das verpasst habe. Vielen Dank! – tronman
Das funktioniert gut, wenn Sie ein Symbol, eine Nachricht, einen Titel und einige andere Elemente ändern möchten, aber ich denke nicht, dass es funktioniert, wenn Sie die Elemente in einer Liste ändern möchten. Wenn Sie beispielsweise die Methode setSingleChoiceItems() von AlertDialog.Builder aufgerufen haben, können Sie diese Elemente in onPrepareDialog() nicht ändern. Die einzige Lösung besteht darin, einen OnDismissListener für den Dialog zu erstellen, der removeDialog() aufruft. Dies erzwingt, dass die onCreateDialog() -Methode jedes Mal aufgerufen wird. – tronman