آموزش ListView
برای نمایش لیستی از اطلاعات از ListView استفاده میشه که خیلی پرکاربرده.
اول باید کلاس Model رو بسازیم. کلاس مدل همون چیزیه که قراره توی هر سطر از لیست نمایش داده بشه. اینجا من کلاس Flower رو برای مدل در نظر گرفتم. در ادامه لیست رو ایجاد میکنیم.
قدم اول: یک ریسورس از جنس لی اوت برای هر سطر ایجاد میشه.
قدم دوم: یک اداپتر ایجاد میکنیم تا هر سطر رو اونجوری که میخوایم توی لیست ویو نشون بده. دو نوع اداپتر داریم، ArrayAdapter و BaseAdapter.
BaseAdapter یک کلاس ابسترکت هست که ArrayAdapter هم اونو اکستند کرده.
بنابراین ما برای کاستوم ادپتر کلاس BaseAdapter رو اکستند کرده و متدهای اون رو پیاده سازی میکنیم. توی سازنده این کلاس کانتکس و لیستی از کلاس مدل رو میدیم. (دقیقا باید همین جوری باشه)
Item شی فعلی از کلاس Model هست که الآن نوبتش رسیده که نمایش داده بشه. position هم اندیس این شی توی لیست هست.
مهم ترین متد این کلاس getView هست. یکی از پارامترهای ورودی این متد convertView هست که این همون ویویی هست که الآن نوبتش رسیده که نمایش داده بشه. اگر توی این ویو هیچی نباشه، ریسورس لی اوت توی این ویو inflate میشه.
ایده این روش اینجوریه که فقط چند تا (مثلا پنج، شیش تا - فکر کنم با توجه به اندازه ال سی دی) سطر ایجاد میشه و بعد از اون با اسکرول کردن و خارج شدن هر سطر، اون سطر خارج شده دوباره از پایین وارد میشه. این کار برای اینه که inflate کردن پروسه هزینه بری هست و اینجوری باعث میشه سرعت بهتر بشه. (قسمت 1)
حالا از ویوی سطری که توش هستیم، دونه دونه ویجت ها رو بیرون میکشیم و مقدارشونو با مقادیر شی Model فعلی پر میکنیم. (قسمت 2)