Ich habe mich jetzt durch die Suche gewurstelt ein bisschen hin und her probiert aber bin nicht zu dem Ergebnis gekommen das ich wollte.
Wie genau schaff ich es, dass wenn ich im Programm auf einen ToggleButton drücke um beispielsweise das Volumen auf 0 zu setzen, diese Einstellung nach einem neustart immernoch aktiv ist?
bis jetzt hat alles was ich gefunden und umprobiert hab nicht zu meinem gewünschten Erfolg geführt.
Kiffi, wärst du evtl. so nett und würdest mir ein kleines Beispiel geben?
Sub tb_CheckedChange(UserCheckedChange As Boolean)
If UserCheckedChange = True Then
MediaPlayer1.Pause
End If
If UserCheckedChange = False Then
MediaPlayer1.Play
End If
vielleicht sowas in der Art (den von corwin42 empfohlenen StateManager
habe ich mir jetzt noch nicht genau angeschaut. Vielleicht solltest Du da
vorher einen Blick reinwerfen):
B4X:
Sub Globals
Dim mySettings As Map
End Sub
Sub Activity_Create(FirstTime As Boolean)
mySettings.Initialize
If File.Exists(File.DirInternal, "settings.ini") Then
mySettings = File.ReadMap(File.DirInternal, "settings.ini")
End If
' [...]
If mySettings.Get("MediaPlayerPlay") = True Then
MediaPlayer1.Play
Else
MediaPlayer1.Pause
End If
End Sub
Sub tb_CheckedChange(Checked As Boolean)
If Checked = True Then
MediaPlayer1.Pause
Else
MediaPlayer1.Play
End If
mySettings.Put("MediaPlayerPlay", Checked)
End Sub
An geeigneter Stelle müsstest Du dann noch die Settings abspeichern:
ich habe es gerade versucht
Nun sind zwei Probleme:
1. Ich habe einen "NullPointerExeption"
und das zweite: Er speichert zwar den Status des Toggle Buttons, aber die musik geht dennoch wieder an.
ich weiß nicht, wie sich eine Map verhält, wenn man auf einen nicht vorhandenen Key zugreifen will. Ändere mal folgendes:
B4X:
If File.Exists(File.DirInternal, "settings.ini") Then
mySettings = File.ReadMap(File.DirInternal, "settings.ini")
Else
' sollte 'settings.ini' noch nicht vorhanden sein, dann hier erstmal einen Default-Wert setzen
mySettings.Put("MediaPlayerPlay", True) ' Wenn der MP beim ersten Start nicht laufen soll, dann hier False eintragen
End If
Ich habe den Quellcode mal in eine txt gepackt, wenn du ihn dir anschauen möchtest. Es ist zwar noch etwas unsauber alles aber man kann erkennen wo etwas ist, hoffe ich. Sofern du möchtest natürlich, ich möcht niemandem mehr arbeit machen als gewollt
das entzieht sich meiner Kenntnis. Auf jeden Fall solltest Du nur dann einen
Sound abspielen, wenn "MediaPlayerPlay" = True ist. In Deinem Fall führst Du
Play ja immer aus.
Entschuldigung, ich selbst wohl halb am schlafen. Der Fehler kommt nach einem restart, egal wie der toggle eingestellt ist. Es ist weiterhin auch egal ob ich nach demersten Start überhaupt etwas andere am toggle, ich denke also der Fehler ist schon am Anfang beim schreiben und lesen der setting.ini
@conman: Anhand des von Dir geposteten Codes kann ich den Fehler nicht
reproduzieren. Wechselst Du zwischendurch die Activities oder drehst Du Dein
Device?
Also ich wechsel zu keiner Activity, wie gesagt ich mach es an, drück auf den Button und mach es aus und schon kommt der Fehler. Sowie wenn ich An und einfach aus mache.