Die Anleitung zu Android SharedPreferences

View more categories:

1- Was ist SharedPreferences?

Sehen Sie eine Situation um SharedPreferences zu kennen:

Sie spielen gerade ein Game auf  Android. Vor dem Game-spielen wählen Sie die Parameter der Game, zum Beispiel die Helligkeit des Games, die Volume und die Schwierigkeit. Nach dem Spielen schließen Sie das Game und können das Game weiter spielen. SharedPreferences genehmigt Ihnen bei der Speicherung der von Ihnen gebildeteten Parameter, damit Sie bei dem weiteren Spielen von der vorherigen Parameter nicht wieder einstellen .
SharedPreferences speichert die Raw-Daten in der Form von dem Schlüssel und Wert (key-value) in der Datei der Applikation. Sie können ein der privaten Speicherungsmodus wählen, die die anderen Applikation in dieser Datei nicht zugreifen. Deshalb ist sie sicher .

2- Das Beispiel mit SharedPreferences

Schauen Sie das Bild der Applikationsinterface vor
Erstellen Sie ein Projekt mit dem Name von  AndroidSharedPreferences:
Die Interface machen

SLIDER:

activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="org.o7planning.androidsharedpreferences.MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="Game Setting:"
        android:id="@+id/textView_setting"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="Sound:"
        android:id="@+id/textView_sound"
        android:layout_below="@+id/textView_setting"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_marginTop="35dp" />

    <SeekBar
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/seekBar_sound"
        android:layout_below="@+id/textView_sound"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_marginTop="35dp"
        android:layout_alignRight="@+id/textView_setting"
        android:layout_alignEnd="@+id/textView_setting"
        android:max="100"
        android:progress="90"
        android:indeterminate="false" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="Brightness:"
        android:id="@+id/textView_brightness"
        android:layout_below="@+id/seekBar_sound"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_marginTop="35dp" />

    <SeekBar
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/seekBar_brightness"
        android:layout_centerVertical="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_alignEnd="@+id/seekBar_sound"
        android:max="100"
        android:progress="95"
        android:indeterminate="false"
        android:layout_below="@+id/textView_brightness"
        android:layout_marginTop="35dp"
        android:layout_alignRight="@+id/textView_setting" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="Difficulty Level"
        android:id="@+id/textView_diffLevel"
        android:layout_below="@+id/seekBar_brightness"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_marginTop="35dp" />

    <RadioGroup
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:layout_below="@+id/textView_diffLevel"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_marginTop="35dp"
        android:orientation="horizontal"
        android:id="@+id/radioGroup_diffLevel">

        <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Easy"
            android:id="@+id/radioButton_easy"
            android:checked="false" />

        <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Medium"
            android:id="@+id/radioButton_medium"
            android:checked="false" />

        <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Hard"
            android:id="@+id/radioButton_hard"
            android:checked="false" />
    </RadioGroup>

    <Button
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Save"
        android:id="@+id/button"
        android:layout_below="@+id/radioGroup_diffLevel"
        android:layout_toRightOf="@+id/textView_diffLevel"
        android:onClick="doSave" />

</RelativeLayout>
MainActivity.java
package org.o7planning.androidsharedpreferences;

import android.content.Context;
import android.content.SharedPreferences;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.SeekBar;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {


    private SeekBar seekBarSound ;
    private SeekBar seekBarBrightness;

    private RadioGroup radioGroupDiffLevel;
    private RadioButton radioButtonEasy;
    private RadioButton radioButtonMedium;
    private RadioButton radioButtonHard;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        this.seekBarBrightness= (SeekBar)this.findViewById(R.id.seekBar_brightness);
        this.seekBarSound= (SeekBar)this.findViewById(R.id.seekBar_sound);

        this.radioGroupDiffLevel= (RadioGroup) this.findViewById(R.id.radioGroup_diffLevel);
        this.radioButtonEasy=(RadioButton) this.findViewById(R.id.radioButton_easy);

        this.radioButtonMedium = (RadioButton)this.findViewById(R.id.radioButton_medium);
        this.radioButtonHard=(RadioButton) this.findViewById(R.id.radioButton_hard);


        // Load saved game setting.
        this.loadGameSetting();
    }


    private void loadGameSetting()  {
        SharedPreferences sharedPreferences= this.getSharedPreferences("gameSetting", Context.MODE_PRIVATE);

        if(sharedPreferences!= null) {

            int brightness = sharedPreferences.getInt("brightness", 90);
            int sound = sharedPreferences.getInt("sound",95);
            int checkedRadioButtonId = sharedPreferences.getInt("checkedRadioButtonId", R.id.radioButton_medium);

            this.seekBarSound.setProgress(sound);
            this.seekBarBrightness.setProgress(brightness);
            this.radioGroupDiffLevel.check(checkedRadioButtonId);

        } else {
            this.radioGroupDiffLevel.check(R.id.radioButton_medium);
            Toast.makeText(this,"Use the default game setting",Toast.LENGTH_LONG).show();
        }

    }

    // Called when user click to Save button.
    public void doSave(View view)  {
        // The created file can only be accessed by the calling application
        // (or all applications sharing the same user ID).
        SharedPreferences sharedPreferences= this.getSharedPreferences("gameSetting", Context.MODE_PRIVATE);

        SharedPreferences.Editor editor = sharedPreferences.edit();

        editor.putInt("brightness", this.seekBarBrightness.getProgress());
        editor.putInt("sound", this.seekBarSound.getProgress());

        // Checked RadioButton ID.
        int checkedRadioButtonId = radioGroupDiffLevel.getCheckedRadioButtonId();

        editor.putInt("checkedRadioButtonId", checkedRadioButtonId);

        // Save.
        editor.apply();

        Toast.makeText(this,"Game Setting saved!",Toast.LENGTH_LONG).show();
    }
}
 
Ihre Applikation starten
Nach der Speicherung können Sie die Applikation schließen und wieder sie öffnen. Die Parameter, die von Ihnen gespeichert werden, werden automatisch für das Game gesetzt 

View more categories: