kramann.info
© Guido Kramann

Login: Passwort:










kramann.info
© Guido Kramann

Login: Passwort:




Merken der im Fenster "Settings" gemachten Angaben

(EN google-translate)

(PL google-translate)

Lösung

Es gibt für Android-Apps mehrere Modelle, um Daten zu speichern, die verschiedene Permission-Einträge im Manifest benötigen. Die Nachfolgende gehört "zu den Harmlosen" und benötigt keinen Permission-Eintrag und dient zur Abspeicherung Programm-bezogener kleiner Datenmenge, typischerweise Parameter.

  • Es wird die Library-Klasse SharedPreferences verwendet
  • Beim Start der App wird geprüft, ob Paramter zum Laden da sind, wen nicht, werden Default-Werte genommen.
  • Beim Wechsel in den Aktiv-Modus werden immer die aktuellen Parameter gespeichert.

Es folgen die Programmzeilen aus der Klasse info.kramann.tapeecho.TapeEcho, die wiedergeben, wie das Laden und Speichern der Parameter erfolgt:

package info.kramann.tapeecho;

import android.content.SharedPreferences;
...
public class TapeEcho extends Zwischenschicht 
{
    SharedPreferences prefs;
    SharedPreferences.Editor editor;
    String prefName = "Settings";
    ...
    public void initialisieren()
    {
          ...
    	  prefs = getSharedPreferences(prefName,MODE_PRIVATE);

          BPM = prefs.getInt("BPM",60); //Wenn kein Wert gefunden wird, werden die nebenstehenden Defaultwerte genommen.
          LDB = prefs.getInt("LDB",8);
          RDB = prefs.getInt("RDB",16);
          ...
    }          
    ...
    public void mousePressed()
    {
    	if(mouseY>height-yraster && ZUSTAND==1)
    	{
    		//Merkspeicher löschen, für Konsistenz sorgen:
    		aktualisiereEinstellungen();
    		reinitialisieren();
    		
    		//Vor dem Wechsel in den Arbeitsmodus die aktuellen Einstellungen speichern:
                editor = prefs.edit();
            
    		editor.putInt("BPM",BPM);
    		editor.putInt("LDB",LDB);
    		editor.putInt("RDB",RDB);
    		
    		editor.commit();  //Zuvor angegebene Speichervorgänge auslösen.
                ....
        }
    }
    ...
}

Code 0-1: Erreichen von Persistenz bei den Parametern BPM, LDB, RDB.