Android - Gemeinsame Einstellungen

Android bietet viele Möglichkeiten zum Speichern von Daten einer Anwendung. Eine dieser Möglichkeiten heißt Shared Preferences. Mit den freigegebenen Einstellungen können Sie Daten in Form eines Schlüssel-Wert-Paares speichern und abrufen.

Um gemeinsam genutzte Einstellungen zu verwenden, müssen Sie eine Methode getSharedPreferences () aufrufen, die eine SharedPreference-Instanz zurückgibt, die auf die Datei verweist, die die Werte der Einstellungen enthält.

SharedPreferences sharedpreferences = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE);

Der erste Parameter ist der Schlüssel und der zweite Parameter ist der MODE. Neben privat gibt es noch andere Modi, die unten aufgeführt sind -

Sr.Nr. Modus & Beschreibung
1

MODE_APPEND

Dadurch werden die neuen Einstellungen an die bereits vorhandenen Einstellungen angehängt

2

MODE_ENABLE_WRITE_AHEAD_LOGGING

Datenbank offenes Flag. Wenn es festgelegt ist, wird standardmäßig die Vorausschreibprotokollierung aktiviert

3

MODE_MULTI_PROCESS

Diese Methode prüft, ob Einstellungen geändert wurden, auch wenn die gemeinsam genutzte Präferenzinstanz bereits geladen wurde

4

MODE_PRIVATE

Durch Einstellen dieses Modus kann nur mit der aufrufenden Anwendung auf die Datei zugegriffen werden

5

MODE_WORLD_READABLE

In diesem Modus können andere Anwendungen die Einstellungen lesen

6

MODE_WORLD_WRITEABLE

In diesem Modus können andere Anwendungen die Einstellungen schreiben

Sie können etwas in den freigegebenen Einstellungen speichern, indem Sie die SharedPreferences.Editor-Klasse verwenden. Sie rufen die Bearbeitungsmethode der SharedPreference-Instanz auf und erhalten sie in einem Editorobjekt. Seine Syntax ist -

Editor editor = sharedpreferences.edit();
editor.putString("key", "value");
editor.commit();

Neben der putString-Methode stehen in der Editor-Klasse Methoden zur Verfügung, mit denen Daten in gemeinsam genutzten Einstellungen bearbeitet werden können. Sie sind wie folgt aufgeführt:

Sr. NO Modus & Beschreibung
1

apply()

Es ist eine abstrakte Methode. Ihre Änderungen werden vom Editor zurück in das von Ihnen aufgerufene sharedPreference-Objekt übernommen

2

clear()

Es werden alle Werte aus dem Editor entfernt

3

remove(String key)

Der Wert, dessen Schlüssel als Parameter übergeben wurde, wird entfernt

4

putLong(String key, long value)

Es wird ein langer Wert in einem Voreinstellungseditor gespeichert

5

putInt(String key, int value)

Es wird ein ganzzahliger Wert in einem Voreinstellungseditor gespeichert

6

putFloat(String key, float value)

Es wird ein Gleitkommawert in einem Voreinstellungseditor gespeichert

Beispiel

Dieses Beispiel zeigt die Verwendung der freigegebenen Einstellungen. Es wird ein Bildschirm mit einigen Textfeldern angezeigt, deren Wert beim Schließen der Anwendung gespeichert und beim erneuten Öffnen wieder angezeigt wird.

Um mit diesem Beispiel zu experimentieren, müssen Sie dies auf einem tatsächlichen Gerät ausführen, nachdem Sie die Anwendung gemäß den folgenden Schritten entwickelt haben:

Schritte Beschreibung
1 Sie werden Android Studio verwenden, um eine Android-Anwendung unter einem Paket com.example.sairamkrishna.myapplication zu erstellen.
2 Ändern Sie die Datei src / MainActivity.java, um einen Fortschrittscode hinzuzufügen und den Dialog über den sich drehenden Fortschritt anzuzeigen.
3 Ändern Sie die Datei res / layout / activity_main.xml, um den entsprechenden XML-Code hinzuzufügen.
4 Führen Sie die Anwendung aus und wählen Sie ein laufendes Android-Gerät aus. Installieren Sie die Anwendung darauf und überprüfen Sie die Ergebnisse.

Es folgt der Inhalt der geänderten MainActivity.java.

package com.example.sairamkrishna.myapplication;

import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
   EditText ed1,ed2,ed3;
   Button b1;
	
   public static final String MyPREFERENCES = "MyPrefs" ;
   public static final String Name = "nameKey";
   public static final String Phone = "phoneKey";
   public static final String Email = "emailKey";
	
   SharedPreferences sharedpreferences;

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

      ed1=(EditText)findViewById(R.id.editText);
      ed2=(EditText)findViewById(R.id.editText2);
      ed3=(EditText)findViewById(R.id.editText3);

      b1=(Button)findViewById(R.id.button);
      sharedpreferences = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE);

      b1.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View v) {
            String n  = ed1.getText().toString();
            String ph  = ed2.getText().toString();
            String e  = ed3.getText().toString();

            SharedPreferences.Editor editor = sharedpreferences.edit();

            editor.putString(Name, n);
            editor.putString(Phone, ph);
            editor.putString(Email, e);
            editor.commit();
            Toast.makeText(MainActivity.this,"Thanks",Toast.LENGTH_LONG).show();
         }
      });
   }

}

Es folgt der Inhalt der geänderten Hauptaktivitätsdateires/layout/activiy_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:paddingLeft="@dimen/activity_horizontal_margin"
   android:paddingRight="@dimen/activity_horizontal_margin"
   android:paddingTop="@dimen/activity_vertical_margin"
   android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">
   
   <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Shared Preference "
      android:id="@+id/textView"
      android:layout_alignParentTop="true"
      android:layout_centerHorizontal="true"
      android:textSize="35dp" />
      
   <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Tutorials Point"
      android:id="@+id/textView2"
      android:layout_below="@+id/textView"
      android:layout_centerHorizontal="true"
      android:textSize="35dp"
      android:textColor="#ff16ff01" />
      
   <EditText
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/editText"
      android:layout_below="@+id/textView2"
      android:layout_marginTop="67dp"
      android:hint="Name"
      android:layout_alignParentRight="true"
      android:layout_alignParentEnd="true"
      android:layout_alignParentLeft="true"
      android:layout_alignParentStart="true" />
      
   <EditText
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/editText2"
      android:layout_below="@+id/editText"
      android:layout_alignParentLeft="true"
      android:layout_alignParentStart="true"
      android:layout_alignParentRight="true"
      android:layout_alignParentEnd="true"
      android:hint="Pass" />
      
   <EditText
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/editText3"
      android:layout_below="@+id/editText2"
      android:layout_alignParentLeft="true"
      android:layout_alignParentStart="true"
      android:layout_alignParentRight="true"
      android:layout_alignParentEnd="true"
      android:hint="Email" />
      
   <Button
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Save"
      android:id="@+id/button"
      android:layout_below="@+id/editText3"
      android:layout_centerHorizontal="true"
      android:layout_marginTop="50dp" />
      
</RelativeLayout>

Es folgt der Inhalt des geänderten Inhalts der Datei res/values/strings.xml.

<resources>
   <string name="app_name">My Application</string>
</resources>

Es folgt die Standarddatei für den Inhalt AndroidManifest.xml.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.example.sairamkrishna.myapplication" >
   
   <application
      android:allowBackup="true"
      android:icon="@mipmap/ic_launcher"
      android:label="@string/app_name"
      android:theme="@style/AppTheme" >
      
      <activity
         android:name=".MainActivity"
         android:label="@string/app_name" >
         
         <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
         </intent-filter>
         
      </activity>
      
   </application>
</manifest>

Versuchen wir, Ihre Anwendung auszuführen. Ich gehe davon aus, dass Sie Ihr aktuelles Android Mobile-Gerät mit Ihrem Computer verbunden haben. Um die App von Android Studio aus auszuführen, öffnen Sie eine der Aktivitätsdateien Ihres Projekts und klicken Sie in

der Symbolleiste auf das Symbol Ausführen . Vor dem Starten Ihrer Anwendung zeigt Android Studio das folgende Fenster an, in dem Sie eine Option auswählen können, mit der Sie Ihre Android-Anwendung ausführen möchten.

Wählen Sie Ihr Mobilgerät als Option aus und überprüfen Sie Ihr Mobilgerät, das den folgenden Bildschirm anzeigt:

Geben Sie jetzt einfach einen Text in das Feld ein. Als würde ich einen zufälligen Namen und andere Informationen eingeben und auf die Schaltfläche Speichern klicken.

Wenn Sie nun auf die Schaltfläche Speichern klicken, wird der Text in den freigegebenen Einstellungen gespeichert. Drücken Sie nun die Zurück-Taste und beenden Sie die Anwendung. Öffnen Sie es jetzt erneut und Sie sehen den gesamten Text, den Sie in Ihrer Bewerbung zurückgeschrieben haben.