استفاده از SharedPreferences (فایل تنظیمات برنامه) در برنامه نویسی اندروید
چهارشنبه, ۱۱ دی ۱۳۹۲، ۰۱:۵۰ ق.ظ
SharedPreferences، در واقع در مواقعی بکار می رود که می خواهیم فایل تنظیماتی برای برنامه خود با قابلیت ذخیره تنظیمات در دستگاه اندروید، داشته باشیم.
مثلا می توان به روشن و خاموش بودن سرویسی که در برنامه استفاده شده و توسط کاربر تنظیم می گردد، اشاره کرد.
به عنوان مثال میخواهیم تنظیماتی برای ذخیره یه String که یه مثلا به دید روشن و خاموش بودن سرویسمون بهش نگاه کنیم، در سیستم ذخیره کنیم.
برای خواندن این فایل تنظیمات به صورت زیر عمل میکنیم:
خط اول که تعریف متغیری از نوع SharedPreferences می باشد و در خط دوم متغیر ENABLE که از نوع String بوده و با استفاده از متد getString فراخوانی می گردد که آرگومان های آن به ترتیب، کلید درخواست و مقدار پیش فرض درخواست می باشد.
در واقع چک می کند که آیا مقداری با کلید Enable در تنظیمات ذخیره شده است یا نه که در صورت بودن، مقدار ذخیره شده، و در غیر این صورت مقدار پیشفرض که در اینجا on می باشد را بر می گرداند.
برای نوشتن تنظیمات نیز، اعمال زیر را انجام می دهیم:
خط اول که همان تعریف بوده و در خط دوم هم نیازی به متغیری از نوع Editor داریم تا بتوانیم، اطلاعات موجود در SharedPreferences را تغییر دهیم.
در خط سوم، میخواهیم، توسط Editor مقدار با کلید Enable را به off تغییر دهیم که این کار نیز با مقدار putString امکان پذیر است و در واقع از این پس بعد از باز کردن برنامه، مقدار خوانده شده در قسمت اول کد، به جای مقدار پیشفرض مقدار off بر میگرداند و تا وقتی مقدار آن را عوض نکینم، همینطور خواهد ماند.
البته باید توجه کرد که برای ذخیره تغییرات نیاز به خط چهارم برنامه است.
در ضمن به جای getString و putString که در این مثال به آن اشاره شد، انواع دیگری از جمله Integer، Boolean و ... نیز برای SharedPreferences تعریف شده است.
در واقع میتوان SharedPreferences را با JSON که قالبا از آن جهت ذخیره فایل تنظیمات استفاده می گردد مقایسه کرد.
مثلا می توان به روشن و خاموش بودن سرویسی که در برنامه استفاده شده و توسط کاربر تنظیم می گردد، اشاره کرد.
به عنوان مثال میخواهیم تنظیماتی برای ذخیره یه String که یه مثلا به دید روشن و خاموش بودن سرویسمون بهش نگاه کنیم، در سیستم ذخیره کنیم.
برای خواندن این فایل تنظیمات به صورت زیر عمل میکنیم:
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
String ENABLE = sharedPreferences.getString("Enable", "on");
String ENABLE = sharedPreferences.getString("Enable", "on");
خط اول که تعریف متغیری از نوع SharedPreferences می باشد و در خط دوم متغیر ENABLE که از نوع String بوده و با استفاده از متد getString فراخوانی می گردد که آرگومان های آن به ترتیب، کلید درخواست و مقدار پیش فرض درخواست می باشد.
در واقع چک می کند که آیا مقداری با کلید Enable در تنظیمات ذخیره شده است یا نه که در صورت بودن، مقدار ذخیره شده، و در غیر این صورت مقدار پیشفرض که در اینجا on می باشد را بر می گرداند.
برای نوشتن تنظیمات نیز، اعمال زیر را انجام می دهیم:
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
Editor editor = sharedPreferences.edit();
editor.putString("Enable", "off");
editor.commit();
Editor editor = sharedPreferences.edit();
editor.putString("Enable", "off");
editor.commit();
خط اول که همان تعریف بوده و در خط دوم هم نیازی به متغیری از نوع Editor داریم تا بتوانیم، اطلاعات موجود در SharedPreferences را تغییر دهیم.
در خط سوم، میخواهیم، توسط Editor مقدار با کلید Enable را به off تغییر دهیم که این کار نیز با مقدار putString امکان پذیر است و در واقع از این پس بعد از باز کردن برنامه، مقدار خوانده شده در قسمت اول کد، به جای مقدار پیشفرض مقدار off بر میگرداند و تا وقتی مقدار آن را عوض نکینم، همینطور خواهد ماند.
البته باید توجه کرد که برای ذخیره تغییرات نیاز به خط چهارم برنامه است.
در ضمن به جای getString و putString که در این مثال به آن اشاره شد، انواع دیگری از جمله Integer، Boolean و ... نیز برای SharedPreferences تعریف شده است.
در واقع میتوان SharedPreferences را با JSON که قالبا از آن جهت ذخیره فایل تنظیمات استفاده می گردد مقایسه کرد.