MultiSelectListPreference:
- مثل قبلی، با این تفاوت که میشه چند تا گزینه رو انتخاب کرد. نتیجه رو توی فایل XML به صورت یک Set ذخیره میکنه.
- title، key و اینا داره.
MultiSelectListPreference:
- مثل قبلی، با این تفاوت که میشه چند تا گزینه رو انتخاب کرد. نتیجه رو توی فایل XML به صورت یک Set ذخیره میکنه.
- title، key و اینا داره.
ListPreference:
- یک لیستی رو نشون میده و کاربر میتونه یک گزینه از این لیست رو انتخاب کنه.
- برای این لیست باید entries و entryValues تعیین کنیم.
- entries: مقادیری که توی لیست نشون داده میشه.
برای داشتن صفحه تنظیمات نیز از Preference استفاده میشه.
برای ساخت صفحه تنظیمات روی res کلیک راست کرده و new android resource file رو میزنیم. ریسورس تایپ رو XML میذاریم و به طور پیش فرض روت المنت PreferenceScreen میشه. بنابراین یک فولدر XML در res ساخته میشه که شامل فایل تنظیمات ما هست.
برای استفاده از Preferenceها توی اندروید، اول باید دیتاتایپ اونو معرفی کنیم. به این صورت:
SharedPreferences prefs;
من اینو توی قسمت فیلدهای کلاس نوشتم.
و ساخت شی توی onCreate:
prefs = getSharedPreferences("MyPrefs",MODE_PRIVATE);
یکی دیگه از روش های ذخیره سازی اطلاعات در اندروید استفاده از Preference ها هست. توی این روش اطلاعات در یک فایل XML ذخیره میشه. معمولا اطلاعاتی مثل تنظیمات برنامه (اسم کاربر، اندازه فونت، رنگ بک گراند و ...) رو توی Preferenceها ذخیره میکنن.
اگر گوشی روت شده باشه (دسترسی به روت داشته باشه) میشه فایل این XML رو دید. (توی امولیتور از طریق مسیر
اسم پکیج برنامه < data > data قابل نمایشه)
1. حتما از کلاس Labels استفاده بشه (برای اسامی دیتابیس، جدول و ستون ها و ...)
2. اگر بخواهیم سرچ کنیم مثلا کدوم کاربر اسم یا فامیلیش یه چیز خاصی هست میشه از Where توی دستور query استفاده کرد. (برای اطلاعات بیشتر به سایت اندروید مراجعه شود)
3. حتما حتما حتما برای دسترسی به دیتابیس توی هر اکتیویتی دیتابیس باید باز بشه. (چند ساعت سر همین رفتم سر کار!)
4. هر جا کارمون با Cursor تموم شد باید اونو close کنیم.
5. استفاده از سینگل تون هم روش خوبیه برای اینکه توی هر اکتیویتی از دیتابیس شی نسازیم. (اینو تست نکردم هنوز)
6. لینک های مفید دیتابیس:
لینک 3 (استفاده از شی سینگل تون)
متد delete
این متد مثل متد آپدیت هست ولی contentValues نداره. خروجی int هم داره. این int شماره اون سطری که تحت تاثیر قرار گرفته (یعنی حذف شده) رو نشون میده در غیر این صورت "صفر" برمیگردونه.
برای اینکه کل سطرها حذف شه باید بجای whereClause "یک" بذاریم. (اینو تست نکردم توی سایت اندروید نوشته)
متد update
از این متد برای آپدیت کردن رکوردها استفاده می شود. این متد توی کلاس دیتابیس تعریف شده.
متد Select
این متد خیلی مهمه. کلا برای خوندن از دیتابیس از این متد استفاده میشه. یعنی هر کاری از قبیل سرچ و نمایش و اینا وظیفه این متد هست. مثل قبل، برای استفاده از این متد دو روش وجود داره:
1. استفاده از متد "rawQuery"
2. استفاده از متد "query"
متد insert در دیتابیس
این متد برای اینه که یک سطر به دیتابیس اضافه بشه. به صورت کلی دو روش برای این کار وجود داره:
1. استفاده از دستورات SQL و متد execSQL
متد "execSQL" خروجی نداره و فقط یه دستور SQL رو اجرا میکنه. مشکلش اینه که ممکنه ارور داشته باشه و برنامه کرش کنه. بخاطر همین حتما باید توی try-catch باشه. مضاف بر اینکه، اندروید توصیه میکنه از این استفاده نکنیم چون خروجی نداره. ولی خب در هر صورت هر چی عشقتون میکشه :))