Ülkemizde düzenlenen hackathon'lara detaylı bakış
Önceki Makale
- Anasayfa
- Android
- Android SharedPreferences Kullanımı – [ Android Studio ]
Android SharedPreferences Kullanımı – [ Android Studio ]
Android tabanlı herhangi bir uygulama veya projeniz varsa ve size geçici bir hafıza gerekiyorsa bunu SharedPreferences yöntemini kullanarak sorunu çözebilirsiniz. SharedPreferences uygulamalarınızda bir nevi geçici veritabanı gibi çalışır. Bu örneğimizde kullanıcının edittext’e girdiği veriyi SharedPreferences yöntemi ile kayıt edeceğiz ve daha sonra bu veriyi ekrana yazıdıracağız.
İlk olarak gerekli kütüphanelerimizi dahil edecelim.
import android.content.SharedPreferences; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView;
Daha sonra Button, TextView, EditText, SharedPreferences, SharedPreferences.Editor türlerinde değişken tanımladık.
SharedPreferences webinyoPref; SharedPreferences.Editor editor; Button btnKaydet,btnGetir; TextView veriyiEkranaYaz; EditText icerikGir;
Devam edersek .xml dosyasında yerleştirmiş olduğumuz elemanlarımızı biraz önce tanımlamış olduğumuz değişkenlere atıyoruz ki kullanalım.
webinyoPref = getApplicationContext().getSharedPreferences("VeriSakla", MODE_PRIVATE); editor = webinyoPref.edit(); // NESNELERİMİZİ DEĞİŞKENLERİMİZE ATADIK btnKaydet = (Button) findViewById(R.id.kaydet); btnGetir = (Button) findViewById(R.id.getir); icerikGir = (EditText) findViewById(R.id.editText); veriyiEkranaYaz = (TextView) findViewById(R.id.ekranaYaz);
Sonrasında tanımladığımı butonlara tıklandığında ne iş yapacağına karar veriyoruz. btnKaydet değişkene tıklandığında editText içerisindeki veriyi “editPref” isimli SharedPreferences değişkenine atıyor ve kayıt ediyor.
btnKaydet.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // EDİTTEXT'E GİRİLEN DEĞERİ ALDIK String girilenVeri = icerikGir.getText().toString(); // GİRİLEN DEĞERİ editPref isimli SHAREDPREF DEĞİŞKENİNE ATADIK editor.putString("editPref", girilenVeri); editor.commit(); } });
Son olarak btnGetir değişkenine tıkladığında SharedPreferences yöntemi ile saklamış olduğumuz veriyi ekrana yazdırıyoruz.
btnGetir.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // DAHA ÖNCEDEN TANIMLAMIŞ OLDUĞUMUZ editPref İSİMLİ VERİYİ ÇAĞIRIP EKRANA YAZIDIRIYORUZ. String myString = webinyoPref.getString("editPref", "N/A"); veriyiEkranaYaz.setText(myString); } });
Tam Kodlarımız.
MainActivity.java Dosyasındaki Kodlar
package com.android.webinyo.sharedpreferenceskullanimi; import android.content.Intent; import android.content.SharedPreferences; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; public class MainActivity extends AppCompatActivity { // DEĞİŞKENLERİ TANIMLIYORUZ SharedPreferences webinyoPref; SharedPreferences.Editor editor; Button btnKaydet,btnGetir; TextView veriyiEkranaYaz; EditText icerikGir; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // VeriSakla ADINDA BİR SHAREDPREF TANIMLADIK webinyoPref = getApplicationContext().getSharedPreferences("VeriSakla", MODE_PRIVATE); editor = webinyoPref.edit(); // NESNELERİMİZİ DEĞİŞKENLERİMİZE ATADIK btnKaydet = (Button) findViewById(R.id.kaydet); btnGetir = (Button) findViewById(R.id.getir); icerikGir = (EditText) findViewById(R.id.editText); veriyiEkranaYaz = (TextView) findViewById(R.id.ekranaYaz); // btnKaydet İSİMLİ BUTONA TIKLAMA İŞLEMİ btnKaydet.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // EDİTTEXT'E GİRİLEN DEĞERİ ALDIK String girilenVeri = icerikGir.getText().toString(); // GİRİLEN DEĞERİ editPref isimli SHAREDPREF DEĞİŞKENİNE ATADIK editor.putString("editPref", girilenVeri); editor.commit(); } }); btnGetir.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // DAHA ÖNCEDEN TANIMLAMIŞ OLDUĞUMUZ editPref İSİMLİ VERİYİ ÇAĞIRIP EKRANA YAZIDIRIYORUZ. String myString = webinyoPref.getString("editPref", "N/A"); veriyiEkranaYaz.setText(myString); } }); } }
activity_main.xml Dosyasındaki Kodlar
<?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:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.android.webinyo.sharedpreferenceskullanimi.MainActivity"> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/editText" android:gravity="center" android:layout_marginTop="28dp" android:layout_below="@+id/aciklama" android:layout_alignParentRight="true" android:layout_alignParentEnd="true" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceLarge" android:text="SharedPreferences kullanımı" android:gravity="center" android:id="@+id/textView" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="KAYDET" android:id="@+id/kaydet" android:gravity="center" android:layout_marginTop="28dp" android:layout_below="@+id/editText" android:layout_alignParentRight="true" android:layout_alignParentEnd="true" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="GETİR" android:id="@+id/getir" android:gravity="center" android:layout_centerVertical="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceLarge" android:id="@+id/ekranaYaz" android:gravity="center" android:layout_below="@+id/getir" android:layout_centerHorizontal="true" android:layout_marginTop="88dp" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceSmall" android:text="Lütfen SharedPreferences yöntemini test etmek için birşeyler girin." android:id="@+id/aciklama" android:gravity="center" android:layout_marginTop="31dp" android:layout_below="@+id/textView" android:layout_alignParentRight="true" android:layout_alignParentEnd="true" /> </RelativeLayout>
-
-
iPhone SE 4.5G teknolojisini destekliyor mu? Sonraki Makale
Konu İle İlgili Soru, Görüş ve Öneriler