Android - Oturum Yönetimi
Oturum, kullanıcı verilerini uygulamanızın dışında depolamak istediğinizde size yardımcı olur, böylece kullanıcı uygulamanızı bir sonraki sefer kullandığında, ayrıntılarını kolayca geri alabilir ve buna göre performans gösterebilirsiniz.
Bu pek çok şekilde yapılabilir. Ancak bunu yapmanın en kolay ve en güzel yolu,Shared Preferences.
Paylaşılan Tercihler
Paylaşılan Tercihler, verileri anahtar, değer çifti biçiminde kaydetmenize ve almanıza olanak tanır. Paylaşılan tercihleri kullanmak için, tercihlerin değerlerini içeren dosyaya işaret eden bir SharedPreference örneğini döndüren getSharedPreferences () yöntemini çağırmanız gerekir.
SharedPreferences sharedpreferences = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE);
SharedPreferences.Editor sınıfını kullanarak, paylaşılan tercihlerde bir şey kaydedebilirsiniz. SharedPreference örneğinin düzenleme yöntemini çağıracak ve bunu bir düzenleyici nesnesinde alacaksınız. Sözdizimi -
Editor editor = sharedpreferences.edit();
editor.putString("key", "value");
editor.commit();
PutString yönteminin yanı sıra, editör sınıfında, paylaşılan tercihler içindeki verilerin değiştirilmesine izin veren yöntemler vardır. Aşağıdaki gibi listelenirler -
Sr.No | Mod ve açıklama |
---|---|
1 |
apply() Soyut bir yöntemdir. Değişikliklerinizi düzenleyiciden çağırdığınız sharedPreference nesnesine geri yükler |
2 |
clear() Düzenleyiciden tüm değerleri kaldıracak |
3 |
remove(String key) Parametre olarak anahtarı iletilen değeri kaldırır |
4 |
putLong(String key, long value) Bir tercih düzenleyicide uzun bir değer kaydedecek |
5 |
putInt(String key, int value) Bir tercih düzenleyicide bir tamsayı değeri kaydeder |
6 |
putFloat(String key, float value) Bir tercih düzenleyicide bir kayan değer kaydeder |
Paylaşılan Tercihler aracılığıyla Oturum Yönetimi
Paylaşılan tercihlerden oturum yönetimi gerçekleştirmek için, paylaşılan tercihlerde saklanan değerleri veya verileri kontrol etmemiz gerekir. onResumeyöntem. Verilere sahip değilsek, uygulamayı yeni kurulduğu için en baştan başlatacağız. Ama veriyi elde edersek, kullanıcının bıraktığı yerden başlayacağız. Aşağıdaki örnekte gösterilmektedir -
Misal
Aşağıdaki örnek, Oturum Yönetiminin kullanımını göstermektedir. İlk kez oturum açmanıza izin veren temel bir uygulama oluşturur. Daha sonra çıkış yapmadan uygulamadan çıktığınızda, uygulamayı yeniden başlatırsanız aynı yere geri getirileceksiniz. Ancak uygulamadan çıkış yaparsanız, ana giriş ekranına geri dönersiniz.
Bu örneği denemek için, bunu gerçek bir cihazda veya bir emülatörde çalıştırmanız gerekir.
Adımlar | Açıklama |
---|---|
1 | Com.example.sairamkrishna.myapplication paketi altında bir Android uygulaması oluşturmak için android studio IDE'yi kullanacaksınız. |
2 | Oturum kodu eklemek üzere ilerleme kodu eklemek için src / MainActivity.java dosyasını değiştirin. |
3 | Yeni Aktivite oluşturun ve second.java olarak adlandırın. Bu dosyayı düzenleyerek oturum kodu eklemek için ilerleme kodu ekleyin. |
4 | İlgili XML kodunu eklemek için res / layout / activity_main.xml dosyasını değiştirin. |
5 | İlgili XML kodunu eklemek için res / layout / second_main.xml dosyasını değiştirin. |
7 | Uygulamayı çalıştırın ve çalışan bir android cihaz seçin ve üzerine uygulamayı yükleyin ve sonuçları doğrulayın. |
İşte içeriği 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);
}
});
}
}
İşte içeriği 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();
}
}
İşte içeriği 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>
İşte içeriği 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>
İşte içeriği Strings.xml.
<resources>
<string name="app_name">My Application</string>
</resources>
İşte içeriği 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>
Uygulamanızı çalıştırmayı deneyelim. Ortam kurulumunu yaparken AVD'nizi oluşturduğunuzu varsayıyorum. Uygulamayı Android stüdyosundan çalıştırmak için, projenizin etkinlik dosyalarından birini açın
Kullanıcı adınızı ve şifrenizi yazın (type anything you like, but remember what you type)ve oturum açma düğmesine tıklayın. Aşağıdaki resimde gösterilmektedir -
Giriş düğmesine tıkladığınız anda, bu Hoş Geldiniz ekranına yönlendirileceksiniz. Artık giriş bilgileriniz paylaşılan tercihlerde saklanıyor.
Şimdi tıklayın Exit without logout düğmesi ve ana ekrana geri getirilirsiniz ve tercih edilen dosya, aşağıdaki resimde gösterildiği gibi çıkar
MyPref.xml dosyasını not dosyası olarak açarsanız aşağıdaki gibi olur
Oturumu kapat düğmesine tıklarsanız, tercih değerleri silinecektir. ve giriş olarak farklı değerler girdiyseniz, bu değerleri XML'de tercih olarak girecektir.