Android - Paylaşılan Tercihler
Android, bir uygulamanın verilerini depolamanın birçok yolunu sağlar. Bu yollardan birine Paylaşılan Tercihler denir. 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);
İlk parametre anahtar ve ikinci parametre MODE'dir. Gizli dışında aşağıda listelenen başka modlar da vardır -
Sr.No | Mod ve açıklama |
---|---|
1 | MODE_APPEND Bu, yeni tercihleri zaten var olan tercihlere ekleyecektir. |
2 | MODE_ENABLE_WRITE_AHEAD_LOGGING Veritabanı açık bayrağı. Ayarlandığında, varsayılan olarak önceden yazma günlük kaydını etkinleştirir |
3 | MODE_MULTI_PROCESS Bu yöntem, paylaşılan tercih örneği zaten yüklenmiş olsa bile, tercihlerin değiştirilmesini kontrol edecektir. |
4 | MODE_PRIVATE Bu modu ayarlayarak, dosyaya yalnızca arama uygulaması kullanılarak erişilebilir |
5 | MODE_WORLD_READABLE Bu mod, diğer uygulamanın tercihleri okumasına izin verir |
6 | MODE_WORLD_WRITEABLE Bu mod, diğer uygulamanın tercihleri yazmasına izin verir |
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 |
Misal
Bu örnek, Paylaşılan Tercihlerin kullanımını göstermektedir. Uygulama kapatıldığında değeri kaydedilen ve tekrar açıldığında geri getirilen bazı metin alanlarının bulunduğu bir ekran görüntüler.
Bu örneği denemek için, uygulamayı aşağıdaki adımlara göre geliştirdikten sonra bunu gerçek bir cihazda çalıştırmanız gerekir -
Adımlar | Açıklama |
---|---|
1 | Com.example.sairamkrishna.myapplication paketi altında Android uygulaması oluşturmak için Android stüdyosunu kullanacaksınız. |
2 | Dönen ilerleme iletişim kutusunu görüntülemek için ilerleme kodu eklemek üzere src / MainActivity.java dosyasını değiştirin. |
3 | İlgili XML kodunu eklemek için res / layout / activity_main.xml dosyasını değiştirin. |
4 | Uygulamayı çalıştırın ve çalışan bir android cihaz seçin ve üzerine uygulamayı yükleyin ve sonuçları doğrulayın. |
Aşağıda, değiştirilen içeriğin içeriği yer almaktadır. 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();
}
});
}
}
Aşağıda, değiştirilen ana aktivite dosyasının içeriği yer almaktadırres/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>
Dosyanın değiştirilmiş içeriğinin içeriği aşağıdadır res/values/strings.xml.
<resources>
<string name="app_name">My Application</string>
</resources>
İçerik varsayılan dosyası aşağıdadır 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>
Uygulamanızı çalıştırmayı deneyelim. Gerçek Android Mobil cihazınızı bilgisayarınıza bağladığınızı varsayıyorum. Uygulamayı Android stüdyosundan çalıştırmak için, projenizin etkinlik dosyalarından birini açın
Mobil cihazınızı bir seçenek olarak seçin ve ardından aşağıdaki ekranı gösterecek olan mobil cihazınızı kontrol edin -
Şimdi alana biraz metin koyun. Rastgele bir isim ve diğer bilgileri koyup kaydet düğmesine tıkladığım gibi.
Şimdi kaydet düğmesine bastığınızda, metin paylaşılan tercihlere kaydedilecektir. Şimdi geri düğmesine basın ve uygulamadan çıkın. Şimdi tekrar açın ve uygulamanızda yazdığınız tüm metni göreceksiniz.