Android - Sitzungsverwaltung

Die Sitzung hilft Ihnen beim Speichern von Benutzerdaten außerhalb Ihrer Anwendung, sodass Sie bei der nächsten Verwendung Ihrer Anwendung durch den Benutzer problemlos seine Daten zurückerhalten und entsprechend vorgehen können.

Dies kann auf viele Arten erfolgen. Aber der einfachste und schönste Weg, dies zu tun, ist durchShared Preferences.

Gemeinsame Einstellungen

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);

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.Nr. 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

Sitzungsverwaltung über gemeinsame Einstellungen

Um die Sitzungsverwaltung über freigegebene Einstellungen durchzuführen, müssen Sie die Werte oder Daten überprüfen, die in freigegebenen Einstellungen in der gespeichert sind onResumeMethode. Wenn wir die Daten nicht haben, starten wir die Anwendung von vorne, sobald sie neu installiert wird. Wenn wir die Daten erhalten haben, beginnen wir an der Stelle, an der der Benutzer sie hinterlassen hat. Es wird im folgenden Beispiel gezeigt -

Beispiel

Das folgende Beispiel zeigt die Verwendung der Sitzungsverwaltung. Es erstellt eine Basisanwendung, mit der Sie sich zum ersten Mal anmelden können. Wenn Sie die Anwendung beenden, ohne sich abzumelden, werden Sie an denselben Ort zurückgebracht, wenn Sie die Anwendung erneut starten. Wenn Sie sich jedoch von der Anwendung abmelden, kehren Sie zum Hauptanmeldebildschirm zurück.

Um mit diesem Beispiel zu experimentieren, müssen Sie dies auf einem tatsächlichen Gerät oder in einem Emulator ausführen.

Schritte Beschreibung
1 Sie werden Android Studio IDE verwenden, um eine Android-Anwendung unter einem Paket com.example.sairamkrishna.myapplication zu erstellen.
2 Ändern Sie die Datei src / MainActivity.java, um Fortschrittscode und Sitzungscode hinzuzufügen.
3 Erstellen Sie eine neue Aktivität mit dem Namen second.java. Bearbeiten Sie diese Datei, um den Fortschrittscode und den Sitzungscode hinzuzufügen.
4 Ändern Sie die Datei res / layout / activity_main.xml, um den entsprechenden XML-Code hinzuzufügen.
5 Ändern Sie die Datei res / layout / second_main.xml, um den entsprechenden XML-Code hinzuzufügen.
7 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.

Hier ist der Inhalt von MainActivity.java.

package com.example.sairamkrishna.myapplication;

import android.content.Context;
import android.content.Intent;
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;

public class MainActivity extends AppCompatActivity {
   EditText ed1,ed2,ed3;
   Button b1;
   Intent in;

   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();

            in = new Intent(MainActivity.this,second_main.class);
            startActivity(in);
         }
      });
   }
}

Hier ist der Inhalt von second_main.java.

package com.example.sairamkrishna.myapplication;

import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class second_main extends Activity {
   Button bu=null;
   Button bu2=null;

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

      bu=(Button)findViewById(R.id.button2);
      bu2=(Button)findViewById(R.id.button3);
   }

   public  void logout(View view){
      SharedPreferences sharedpreferences = getSharedPreferences(MainActivity.MyPREFERENCES, Context.MODE_PRIVATE);
      SharedPreferences.Editor editor = sharedpreferences.edit();
      editor.clear();
      editor.commit();
   }

   public void close(View view){
      finish();
   }
}

Hier ist der Inhalt von 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: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="login"
      android:id="@+id/button"
      android:layout_below="@+id/editText3"
      android:layout_centerHorizontal="true"
      android:layout_marginTop="50dp" />

</RelativeLayout>

Hier ist der Inhalt von second_main.xml.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:orientation="vertical" android:layout_width="match_parent"
   android:layout_height="match_parent">
   
   <Button
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Logout"
      android:onClick="logout"
      android:id="@+id/button2"
      android:layout_gravity="center_horizontal"
      android:layout_alignParentTop="true"
      android:layout_centerHorizontal="true"
      android:layout_marginTop="191dp" />
      
   <Button
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Close"
      android:onClick="close"
      android:id="@+id/button3"
      android:layout_below="@+id/button2"
      android:layout_centerHorizontal="true"
      android:layout_marginTop="69dp" />

</RelativeLayout>

Hier ist der Inhalt von Strings.xml.

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

Hier ist der Inhalt von 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>
      
      <activity android:name=".second"></activity>
      
   </application>
</manifest>

Versuchen wir, Ihre Anwendung auszuführen. Ich gehe davon aus, dass Sie Ihre AVD während der Einrichtung der Umgebung erstellt haben. Um die App in Android Studio auszuführen, öffnen Sie eine der Aktivitätsdateien Ihres Projekts und klicken Sie in der Symbolleiste auf das

Symbol Ausführen . Android Studio installiert die App auf Ihrer AVD und startet sie. Wenn mit Ihrer Einrichtung und Anwendung alles in Ordnung ist, wird das folgende Emulatorfenster angezeigt:

Geben Sie Ihren Benutzernamen und Ihr Passwort ein (type anything you like, but remember what you type)und klicken Sie auf die Anmeldeschaltfläche. Es ist im Bild unten gezeigt -

Sobald Sie auf die Anmeldeschaltfläche klicken, werden Sie zu diesem Begrüßungsbildschirm weitergeleitet. Jetzt werden Ihre Anmeldeinformationen in gemeinsamen Einstellungen gespeichert.

Klicken Sie nun auf Exit without logout Klicken Sie auf die Schaltfläche, und Sie werden zum Startbildschirm zurückgeführt. Die Ausgabe der Voreinstellungsdatei erfolgt wie im Bild unten gezeigt

Wenn Sie die Datei myPref.xml als Notizdatei öffnen, sieht dies wie folgt aus

Wenn Sie auf die Schaltfläche zum Abmelden klicken, werden die Voreinstellungswerte gelöscht. Wenn Sie unterschiedliche Werte als Eingaben eingegeben haben, werden diese Werte als Voreinstellung in XML eingegeben.