آموزش قرار دادن داده از sqlite در spinner

سلام دوستان در این سری از آموزش برنامه نویس اندروید به آموزش قرار دادن داده از sqlite در spinner می پردازیم در مطالب قبلی به خواندن json و قرار دادن در spinner پرداختیم در این جلسه ابتدای داده ها را از دیتابیس sqlite می خوانیم سپس در spinner قرار می دهیم یا همان populate می کنیم در ادامه با ما همراه باشید.
در این آموزش ما دوتا spinner داریم که یکش فقط داده ها در آن لود می شوند ولی دومی با انتخاب هر کدام از آیتم های spinner دادهای دیگر نیز از دیتابیس fetch می شوند.
در ابتدای کار در layout اصلی که در اینجا نام آن برابر با activity_main.xml است کد های زیر را قرار دهید.

همانطور که در بالاتر گفتم دو نوع spinner در بالا داریم و textview های دیگر هم برای spinner دوم هست زمانی که از spinner دوم آیتمی را انتحاب کنید در textview ها داده های جدیدی قرار خواهد گرفت.
یک کلاس جاوا به نام DBHelper.java ایجا کرده و کدهای زیر را در آن قرار دهید.

این کلاس بارها توضیح داده شده است و دوباره نیز آن را توضیح میدهم ! کار کلاس بالا ایجاد دیتابیس و insert جدول ها است.
یک کلاس به نام Student.java ایجاد کرده و های زیر را در آن قرار دهید.

این کلاس model ما هست به آن getter و setter نیز می گویند.
یک کلاس دیگر به نام StudentRepo.java ایجاد کرده و کدهای زیر را به آن اضافه کنید.

اگر بخواهیم به طور سریع به توضیح این کلاس بپردازیم باید بگوییم کار insert به دیتابیس در اینجا انجام می شود و عمل select از دیتابیس هم در اینجا handle می شود.
برای اینکه بخشی از spinner سفارشی سازی کنیم (منظور ظاهرش است) باید یک کلاس به نام  StudentSpinnerAdapter.java ایجاد کنیم و از کدهای زیر استفاده کنیم.

در بالا getView شکل ظاهری default خود spinner را در حالتی که کاربر بروی  آیتم های کلیک نکرده را ایجاد می کند.
getDropDownView هم شکل ظاهری هرکدام از spinner ها بعد از کلیک کاربر را تنظیم می کند.
و در آخر کد مربوط به اکتیویتی اصلی که نام آن برابر با MainActivity.java است همانند زیر می شود.

برنامه را تست کنید متوجه می شوید که چا اتفاقی افتاده است ! در کد های بالا ما یک Insert ساده با استفاده از for زدیم تا دیتای sample در دیتابیس قرار گیرد و همانطور که پیشتر گفتیم دوتا spinner وجود دارد در صورتی که اولی را انتخاب کنید داده No Data در TextView قرار خواهد گرفت ولی در صورتی که spinner دوم را تست کنید خواهید دید که داده های از دیتابیس query خورده و در Textview ها قرار می گیرد .
 
این آموزش هم به پایان رسید.
 
موفق و پیروز باشید.

مطالعه بیشتر