ساخت لیست علاقه مندی ها (Favorites)، با استفاده از SharedPreferences و همچنین، تلاش برای محتوا محور کردن برنامه اندروید و ساده تر شدن توسعه اطلاعاتی برنامه
در بیشتر برنامه های آموزشی و اطلاعاتی که به صورت تعدادی مبحث هستند، دو بخش ((جستجو)) و ((لیست علاقه مندی ها)) جزء بخش های اصلی و ضروری برنامه می باشند. قبلا در مبحثی دیگر، چگونگی ساخت قسمت جستجو در عنوان مبحث ها را شرح دادیم، اکنون در این مبحث قصد داریم که چگونگی ساخت لیست علاقه مندی ها را شرح بدهیم.
چون از SharedPreferences استفاده می کنیم، تا زمانی که کاربر، برنامه اندروید را uninstall نکند، اطلاعات مروبط به لیست علاقه مندی ها که به صورت SharedPreferences ذخیره شده است، باقی خواهد ماند و با خروج کاربر از برنامه اندروید، مشکلی برای آنها به وجود نمی آید.
اگر یادتان باشد، در مبحث مربوط به جستجو، ما برای سه مبحث، سه Activity می ساختیم و بنده در همانجا تذکر دادم که نباید در برنامه ها، بدین شیوه مباحث را بسازیم و مجبور نیستیم که برای تک تک مبحث ها، Activity های جداگانه بسازیم، بلکه می توانیم تنها یک Activity بسازیم و سپس بر اساس شماره مبحث ها، اطلاعات مبحث را در آن Activity نمایش بدهیم. در واقع، در مبحث جستجو، تنها می خواستیم منطق جستجو را آموزش بدهیم. اما اکنون، چون یک مبحث نیز در مورد چگونگی ساخت برنامه اندروید ((محتوا محور)) نوشته ام، بد نیست که در برخی مباحث، آن موارد را نیز به کار ببرم. بنابراین این بار کدها را به گونه ای می نویسم که برنامه اندروید، به راحتی قابل توسعه باشد.
در واقع، این مبحث، علاوه بر آموزش ساخت لیست علاقه مندی ها، چگونگی ساخت یک برنامه محتوا محور ساده را نیز آموزش می دهد، به گونه ای که مثلا اگر اکنون دارای 10 مبحث است، بنده اگر بخواهم آن را به 20 مبحث تغییر بدهم، تنها باید یکی از فایل های پروژه اندروید را باز کنم و عدد 10 نوشته شده در آن را به 20 تغییر بدهم و سپس، فایل strings.xml را باز کنم و تعداد 10 رشته (string) که برابر عنوان مبحث ها است و همچنین، 10 رشته دیگر که برابر متن آن مبحث ها می باشد را تعریف کنم. با این تغییرات، تعداد مباحث برنامه به 20 عدد افزایش می یابد، بدون اینکه بنده مجبور باشم که حتی یک خط از کدهای Activity های مختلف برنامه را تغییر بدهم.
دقت شود که در این برنامه اندروید، من تنها از فایل strings.xml برای تعریف محتوای اطلاعاتی برنامه استفاده کرده ام، شما می توانید انتخاب های دیگری مثل ذخیره در پایگاه داده SQLite ، ذخیره در فایل های HTML ، دریافت از اینترنت و ... را داشته باشید (یا ترکیبی از آنها)، که توضیحاتی در مورد آنها را می توانید در مبحث زیر بخوانید (در این برنامه اندروید، ساده ترین روش را انتخاب کرده ایم) :