آموزش SharedPreferences در برنامه نویسی اندروید

یکی از روش ھای ذخیره اطلاعات در برنامه نویسی اندروید استفاده از SharedPreferences که در واقع اطلاعات را با فرمت value/key
ذخیره میکنید و بیشتر برای ذخیره تنظیمات برنامه کاربرد دارد و در مثال برنامه ما از آن برای ذخیره شماره موبایل و پسورد کاربر استفاده
میکنیم در اکتیویتی ٢ تا Edittext قرار می دھیم یکی برای واردکردن شماره موبایل و دیگری برای وارد کردن پسورد، بعد دوتا متغییر از
نوع string و با نام ھای دلخواه phone و pass ایجاد میکنیم، تا محتوای ادیت تکست ھا رو گرفته و در خود ذخیره کنند:

String phone = edtMobile.getText().toString();
String pass = edtPass.getText().toString();

آموزش SharedPreferences در برنامه نویسی اندروید:

خب حالا برای ذخیره این اطلاعات با روش SharedPreferences لازمه اول یک نمونه از SharedPreferences با نام دلخواه sharedP
ایجاد کنیم و آن را برابر با getSharedPreferences قرار دھیم:

sharedP = getSharedPreferences(LoginInfo, Context.MODE_PRIVATE);

ین متد داخل پرانتز از ما ٢ پارامتر ورودی میخواد که اولی نام فایلی است کھ ما میخوام اطلاعات در آن ذخیره بشن که البته یک نام اختیاری
است و ما برای راحتی کار ابتدا یک string با نام دلخواه LoginInfo ایجاد میکنیم ،
مقدار دھی میکنیم و بعد اسم آن را در جای پارامتر اول
وارد میکنیم، پارامتر دوم مربوط به mode یا ھمون روش ذخیره اطلاعات است
که ما در اینجا برابر با PRIVATE_MODE قرار دادیم به
این معنا که فقط برنامه خودمان بتواند از اطلاعات ذخیره شده استفاده کند
البته بجز این mode مدھای دیگری ھم وجود دارند که من در اینجا
فقط نام میبرم :

MODE_APPEND
MODE_WORLD_READABLE

MODE_WORLD_WRITEABLE

عملیات setOnClickListener برای دکمه ذخیره اطلاعات

خب بعدازاین مرحله ما باید برای دکمه ذخیره اطلاعات متد setOnClickListener را فراخوانی کنیم و عملیات مربوط به ذخیره اطلاعات
داخل این متد تعریف شوند، برای ذخیر اطلاعات ما باید یک Editor) با نام دلخواه mobileEdit (برای sharedP که قبلا ساختیم، ایجاد کنیم:

mobileEdit.putString(MobileNo, phone);

ھمین کار را برای پسورد ھم انجام میدھیم و در نھایت با دستور زیر عملیات
ذخیره اطلاعات (یا ویرایش اطلاعات) را اجرا میکنیم:

mobileEdit.apply();

کد نھایی دکمه ذخیره اطلاعات به صورت زیر خواھد بود:

btnSave.setOnClickListener(new View.OnClickListener() {
 @Override
 public void onClick(View view) {
 String phone = edtMobile.getText().toString();
 String pass = edtPass.getText().toString();
 SharedPreferences.Editor mobileEdit = sharedP.edit();
 mobileEdit.putString(MobileNo, phone);
 mobileEdit.putString(Password, pass);
 mobileEdit.apply();
 }
});

خب پس تا اینجا ما اطلاعات مربوط به شماره موبایل و پسورد را از کاربر گرفتیم و داخل یک فایل xml با نام sharedP ذخیره کردیم
فرض کنید ما یک گزینه با نام “یادآوری پسورد” در اکتیویتی قرار میدھیم
که با تیک زدن آن ، ھر بار که برنامه اجرا شد در صورت وجود
داشتن پسورد آن را داخل Edittext نمایش دھد تا دیگر نیازی به وارد کردن آن نباشد، خب برای اینکار از کدھای زیر استفاده میکنیم:

if (sharedP.contains(Password)){
 edtPass.setText(sharedP.getString(Password,"فعلا رمزی ذخیره نشده ;(("
}

ھمونطور که مشخصه ما یک شرط تعریف کردیم که اگر داخل فایل ما (sharedP (رشته ای با نام Password ذخیره بود آن را داخل ادیت
تکست edtPass نمایش دھد و در صورتی که وجود نداشت متن “فعلا رمزی ذخیره نشده” را نمایش دھد.
کدھای مربوط به ذخیره و ویرایش اطلاعات به پایان رسید،

حال اگر ما بخوایم که یکی از اطلاعات یا تمام آنھا پاک شوند، لازمه از متدھای
remove .و ()clear .استفاده کنیم ، روش کار ھم به این صورت که ما ابتدا یک Editor میسازیم (مثل روش بالا) و سپس به شکل زیر کدھا
را تکمیل میکنیم:

SharedPreferences.Editor mobileEdit = sharedP.edit();
mobileEdit.clear();
mobileEdit.apply();

در متد clear چون قراره تمام اطلاعات حذف شوند لازم نیست داخل پرانتز چیزی وارد کنیم ولی در متد ()remove .چون اطلاعات موردی
حذف می شوند لازمه که نام کلیدی که قصد حذف آن را داریم داخل پرانتز وارد شود:

SharedPreferences.Editor mobileEdit = sharedP.edit();
mobileEdit.remove(MobileNo)
mobileEdit.apply();

بعنوان مثال در کدھای بالا ما اطلاعات مربوط بھ MobileNo حذف کردیم.

باز اگه چیزی جا مونده خوشحال میشیم تو قسمت نظرات بپرسید:

 

مدیر سایت

87 مطلب منتشر شده

درباره این مطلب نظر دهید !