آموزش دیتابیس Realm در اندروید

سلام دوستان امیداورم حالتان خوب باشد در این سری از آموزش برنامه نویسی اندروید به آموزش دیتابیس Realm در اندروید می پردازیم همانطور که قبلا دیتابیس Realm را معرفی کردیم دیتابیس Realm بهترین جایگزین برای دیتابیس Sqlite است در ادامه نحوه استفاده و همینطور Implement  دیتابیس Realm را قرار خواهیم داد شاید وقت آن باشد که با دیتابیس Sqlite خداحافظی کرده و از دیتابیس Realm استفاده کنید با ما همراه باشید.
 
در صورتی که تازه با دیتابیس Realm آشنا شده اید می توانید از مطلب زیر بیشتر با آشنا شوید.

دیتابیس Realm چیست ؟

در این آموزش از سه کتاب خانه استفاده خواهیم کرد که باید آن را به پروژه خود اضافه کنید.

بعد از این کتاب خانه های بالا را به فایل Build.gradle اضافه کردید پروژه را sync کنید.
ما یک کلاس Model درست می کنیم که شامل یک فیلد است.
پس یک فایل جاوا به نام MyBook ایجاد کنید و کدهای زیر را در آن قرار دهید.

در بالا کلاس getter و setter را درست کردیم در ادامه از آن استفاده خواهیم کرد.
ابتدا باید یک فرگمنت درست کنیم قبل از اینکه کد جاوا آن را قرار دهیم کد layout آن را قرار میدهیم.
پس یک فایل به نام fragment_list.xml ایجاد کرده و کدهای زیر را در آن قرار دهید.

در کد فرگمنت ما یک Recyclerview قرار دارد که بعدا از دیتابیس آیتم ها در آن نمایش داده می شود.
کد جاوا مربوط به فرگمن بالا در زیر قرار دارد.
یک فایل جاوا به نام MyListFragment.java ایجاد کرده و کدهای زیر را در آن قرار دهید. هرچند این کدها چون که شما آداپتور را ندارید خطا خواهد داشت ولی آموزش را ادامه دهید.

در بالا برخی از بخش ها براتون خطا دارد چون شما هنوز اداپتور را ندارید در بالا ابتدا با استفاده از butterknife ویوها را find کردیم سپس یک آداپتور سفارشی ساختیم و داده ها را از دیتابیس Realm به دست اورده و به Recyclerview فرستادیم.
یک لایه به نام item_book.xml ایجاد کنید و کدهای زیر را در آن قرار دهید.

کد بالا شکل ظاهری هر آیتم در RecyclerView را تعیین می کند.
باید یک کلاس آداپتور درست کنیم اگر یادتان باشد در فرگمنت اصلی خطا داشیتم.
پس یک فایل جاوای دیگر به نام MyListAdapter.java ایجاد کرده و کد های زیر را در آن قرار دهید.

در بالا یک Adapter سفارشی نوشتیم که لایه ای که در قبل این کد قرار دادیم یعنی item_book.xml را در RecyclerView ما Inflate می کند سپس آن را find کرده و از آن استفاده می شود اگر یادتان باشد یک کلاس Model ایجاد کرده بودیم Constructor ورودی ما برابر با یک نوع داده از کلاس RealmResults است .
یک لایه به نام fragment_edition.xml ایجاد کرده و کدهای زیر را در آن قرار دهید.

کار فرگمنت بالا درج یا حذف از دیتابیس است که در آن دو دکمه یکی برای حذف و دیگری برای درج و یک Edittext برای افزودن داده استفاده می شود.
یک فرگمنت به نام MyEditionFragment.java ایجاد کرده و کدهای زیر را در آن قرار دهید.

اگر از کدهایی مانند BindView و غیره بگذریم که قبلا آموزشش را در سایت قرار دادیم دو بخش می می ماند کد درج و حذف از دیتابیس Realm ابتدا از کلاس Model خود یک object ساختیم منظور ساخت یک Instance ساده از Model نیست بلکه ساخت یک Instance که از دیتابیس Realm برگشت داشته باشد به گونه ای نوع Objectiveی از Realm را ایجاد کردیم و سپس مقدار را به Model پاس دادیم.
برای حذف داده نیز از where استفاده کردیم و به این شکل است که اگر در Edittext مقدارد title نوشته شود تمامی داده از دیتابیس حذف می شود. در آینده شکل های مختلفی از آن را برای شما قرار میدهیم.
بعد از اینکه کدهای بالا را قرار دادید باید فرگمنت ها را لود کنید.
برای اینکار نیازمند یک اکتیویتی هستیم پس یک اکتیویتی به نام MyMainActivity.java ایجاد کنید و کدهای زیر را در آن قرار دهید.

کد بالا که یک فرگمنت را لود می کند و فکر نمی کنم نیازمند توضیح باشد.
و در آخر هم layout مربوط به اکتیویتی بالا همانند زیر می شود و نام آن برابر با activity_main.xml است.

 
 
موفق و موید باشید.

مطالعه بیشتر