kramann.info
© Guido Kramann

Login: Passwort:










10.2 Merken der im Fenster "Settings" gemachten Angaben

10.2 Remember the information given in the Settings window (EN google-translate)

10.2 Zapamiętaj informacje podane w oknie Ustawienia (PL google-translate)

Lösung
solution
rozwiązanie

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.

There are several models for Android apps to store data need different permission entries in the manifest. The following belongs to Permission entry and is used to store program-related smaller Amount of data, typically parameters.

Istnieje kilka modeli aplikacji na Androida do przechowywania danych potrzebują różnych wpisów uprawnień w manifeście. Następujące należy do Wpis pozwolenia i służy do przechowywania mniejszych związanych z programem Ilość danych, zwykle parametry.

  • 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:

The program lines from the class info.kramann.tapeecho.TapeEcho follow, which reflect how to load and save the parameters:

Linie programu z klasy info.kramann.tapeecho.TapeEcho podążają, które odzwierciedlają sposób ładowania i zapisywania parametrów:

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 10.2-1: Erreichen von Persistenz bei den Parametern BPM, LDB, RDB.