آموزش Preference ها در اندروید - نکات تکمیلی
نوشتن Listener برای Preference
نکته اول: اگر بخواهیم با کلیک روی preference و تغییر مقدار آن یه اتفاقی بیفته از این روش استفاده میکنیم. برای این کار از متد
setOnPreferenceChangeListener
استفاده میکنیم. در واقع این متد اینترفیس Preference.OnPreferenceChangeListener رو فراخونی میکنه که داخل این اینترفیس متد onPreferenceChange هست. این متد پس از تغییر مقدار Preference مورد نظر فراخونی میشه.
توضیح ورودی های متد onPreferenceChange:
- preference: همین preference تغییر داده شده
- newValue: مقدار جدیدی که برای preference وارد میشه.
- اگر خروجی این متد true باشه مقداری که وارد شده ذخیره میشه و اگر false باشه مقدار ذخیره شده سیو نمیشه. (از این ویژگی میشه مثلا برای این استفاده کرد که اگر کاربر اسمش رو وارد کرد و کمتر از 3 کاراکتر بود قبول نکنیم، یعنی متد false برگردونه)
نکته دوم: اگر بخواهیم با کلیک رو هر preference یه حرکتی انجام بشه (مثلا یک اکتیویتی باز شه یا هر چی)
مثلا اینجا با کلیک روی preference مورد نظر یک صفحه جدید باز میشه.
- preference همون پریفرنسی هست که کلیک شده.
- خروجی متد اگر true باشه عملیات مورد نظر انجام میشه و اگر false باشه انجام نمیشه (ولی من با هر دو تست کردم و اکتیویتی جدید باز شد!)
نکته سوم: برای تغییر فونت و سایز و اینای پریفرنس ها باید براشون لی اوت تعریف کنیم. (بهش میگن custome preference) در مورد این سرچ کردم ولی بمونه برای بعد. لینک هاشو میذارم:
اینم جمع بندی و مرور خوبی برای طراحی صفحه تنظیمات هست:
گیچ شدم