Android Studio SharedPreferences Kullanımı
Android Studio programın veri tabanına ihtiyaç duymadan basit verilerimizi cihaza kaydetmek, veya aktivityler arası veri aktarımı için SharedPreferences nesnesini kullanırız. Android Studio’da SharedPreferences kullanımı, küçük veri parçalarını (genellikle uygulamanın ayarlarını veya kullanıcı tercihlerinin saklanmasını) depolamak için kullanılır. Bu, veritabanı gibi büyük ve karmaşık yapılar yerine, uygulamanın küçük boyutlu ve geçici verilerini saklamak için idealdir.
Bu uygulamamızda kullanıcını girdiği Ad-Soyad ve yaş bilgisini cihaza kaydedip, diğer bir activity de bu verileri okuyup ekrana yazdıracağız. Uygulamamızın ekran görüntüsü aşağıdadır.
Şimdi uygulamamızı adım adım tasarlayıp kodlayalım.
1.Adım: Uygulamamızı aşağıdaki gibi tasarlıyoruz. Ad-soyad için : Plain Text ve id’sini txtadsoyad yaptık. Yaş içinde : Number nesnesi kullandık ve id’sini txtyas yaptık. Her iki nesnenin hint özelliğine içinde gözüken yazıları yazdık. Ekranımıza 1 adette Button nesnesi ekleyip text özelliğine “KAYDET ve GİT” yazıp onclick özelliğine “git” yazdık. 1. Ekranımızın ekran görüntüsü ve kodları aşağıdaki gibidir.
<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/main" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <EditText android:id="@+id/txtadsoyad" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="60dp" android:ems="10" android:hint="Ad Soyadınızı Giriniz" android:inputType="text" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="44dp" android:onClick="git" android:text="KAYDET ve GİT" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.498" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/txtyas" /> <EditText android:id="@+id/txtyas" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="20dp" android:ems="10" android:hint="Yaşınızı Giriniz:" android:inputType="number" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/txtadsoyad" /> </androidx.constraintlayout.widget.ConstraintLayout>
2.Adım: Bu adımda cihaza kaydedilen bilgileri yazdıracağımız 2.Ekranı tasarlıyoruz. Activitymize 1 adet TextView nesnesi ekleyip id’sibi “txtsonuc” olarak ayarlıyoruz. Ekran görünümü ve kodları aşağıdaki gibidir.
<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/main" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity2"> <TextView android:id="@+id/txtsonuc" android:layout_width="324dp" android:layout_height="237dp" android:layout_marginTop="76dp" android:text="TextView" android:textSize="34sp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.494" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> </androidx.constraintlayout.widget.ConstraintLayout>
3.Adım: Bu adımda Kullanıcı Butona tıklandığında onclick olayına yazdığımız git metodunu onCreate metodonun altına yazıyoruz.
public void git(View view){ EditText txtadsoyad=findViewById(R.id.txtadsoyad); EditText txtyas=findViewById(R.id.txtyas); String veri=txtadsoyad.getText().toString(); int veri2=Integer.parseInt(txtyas.getText().toString()); //veriyi cihaza kaydedelim SharedPreferences sharedPreferences=this.getSharedPreferences("dosya.rat", Context.MODE_PRIVATE); SharedPreferences.Editor verim=sharedPreferences.edit(); verim.putString("adsoyad",veri); verim.putInt("yas",veri2); verim.apply(); // veya verim.commit() te kullanabilirsiniz. //Diğer aktiviteye geçmek kodlarınız yazalım. Intent intent=new Intent(this, MainActivity2.class); startActivity(intent); }
Kodlarımız yukarıda gibidir. Öncelikle ad-soyad ve yas girdiğimiz nesneleri tanımlayıp, girilen verileri veri ve veri2 değişkenlerine aktardık.
SharedPreferences sharedPreferences=this.getSharedPreferences("dosya.rat", Context.MODE_PRIVATE);
komutu ile cihazda dosya.rat isminde dosya oluşturduk. Dosya adı ve uzantısı isteğe bağlı. Burada istediğiniz dosya adını ve uzantısını kullanabilirsiniz.
SharedPreferences.Editor verim=sharedPreferences.edit(); verim.putString("adsoyad",veri); verim.putInt("yas",veri2); verim.apply();
komutları ile dosyamızı düzenleme modunda açık “adsoyad” ve “yas” değiskenleri ile girilen verileri dosyaya yazıyoruz.
Intent intent=new Intent(this, MainActivity2.class); startActivity(intent);
komutları ile de 2.Ekranımıza geçiş yapıyoruz.
MaintActivity.java Dosyamızın son hali aşağıdaki gibidir.
package com.example.mart242025_sharedpreferens; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; import android.view.View; import android.widget.EditText; import androidx.activity.EdgeToEdge; import androidx.appcompat.app.AppCompatActivity; import androidx.core.graphics.Insets; import androidx.core.view.ViewCompat; import androidx.core.view.WindowInsetsCompat; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); EdgeToEdge.enable(this); setContentView(R.layout.activity_main); ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> { Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars()); v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom); return insets; }); } public void git(View view){ EditText txtadsoyad=findViewById(R.id.txtadsoyad); EditText txtyas=findViewById(R.id.txtyas); String veri=txtadsoyad.getText().toString(); int veri2=Integer.parseInt(txtyas.getText().toString()); //veriyi cihaza kaydedelim SharedPreferences sharedPreferences=this.getSharedPreferences("dosya.rat", Context.MODE_PRIVATE); SharedPreferences.Editor verim=sharedPreferences.edit(); verim.putString("adsoyad",veri); verim.putInt("yas",veri2); verim.apply(); //verim.commit() //Diğer aktiviteye geçme komutlarını yazalım Intent intent=new Intent(this, MainActivity2.class); startActivity(intent); } }
4.Adım: Bu son adımda cihazımıza kaydettiğimi dosyayı açıp, içindeki verileri okuyup ekrana yazacağımız MainActivity2.java dosyamızın kodlarını yazıyoruz.
Bu dosyamızın içeriği aşağıdaki gibidir.
package com.example.mart242025_sharedpreferens; import android.content.Context; import android.content.SharedPreferences; import android.os.Bundle; import android.widget.TextView; import androidx.activity.EdgeToEdge; import androidx.appcompat.app.AppCompatActivity; import androidx.core.graphics.Insets; import androidx.core.view.ViewCompat; import androidx.core.view.WindowInsetsCompat; public class MainActivity2 extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); EdgeToEdge.enable(this); setContentView(R.layout.activity_main2); TextView txtsonuc=findViewById(R.id.txtsonuc); //dosyamızı açıp veriyi okuyalım. SharedPreferences sharedPreferences=this.getSharedPreferences("dosya.rat", Context.MODE_PRIVATE); String gelenveri=sharedPreferences.getString("adsoyad","Boş"); int gelenveri2=sharedPreferences.getInt("yas",0); //okuduğumuz veriyi textview e yazdıralım txtsonuc.setText("Ad-Soyadınız:\n "+gelenveri+" \n\nYaşınız:\n "+gelenveri2); ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> { Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars()); v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom); return insets; }); } }
Yukarıdaki kodlarda dosya.rat dosyamızı
SharedPreferences sharedPreferences=this.getSharedPreferences("dosya.rat", Context.MODE_PRIVATE);
kodu ile dosyamızı açtık.
String gelenveri=sharedPreferences.getString("adsoyad","Boş"); int gelenveri2=sharedPreferences.getInt("yas",0);
kodları ile dosyadaki verileri adsoyad ve yas verilerini okuduk.
txtsonuc.setText("Ad-Soyadınız:\n "+gelenveri+" \n\nYaşınız:\n "+gelenveri2);
kodu ile de okuduğımız verileri TextView nesnesine yazdırdık.
Uygulamamı bu kadar.
Uygulamamızın Kaynak Dosyasını İndirmek İçin Tıklayınız
Uygulamamızın Kaynak Dosyasını İndirmek İçin Tıklayınız
Yorum gönder
Yorum yapabilmek için oturum açmalısınız.