آموزش List view سفارشی

 

 

برای ساخت لیست ویو سفارشی ابتدا یک لیست ویو به لایه xml اکتیویتی مورد نظرمان اضافه میکنیم

و یک آی دی به آن اختصاص میدھیم.

در مثال برنامه چون میخوایم یک لیست ویو بسازیم که ھر کدام از آیتم ھای آن شامل یک تصویر و دوتا تکست
ویو باشد ،

داخل پوشه layout یک لایه xml جدید (به ھمان روشی که قبلا آموزش داده شده) با نام دلخواه list می سازیم و ویجت
ھای مورد نظر را به آن اضافه میکنیم ،

خب حالا ما برای اینکه بتونیم بین این ویجت ھا و لیست ویو ارتباط برقرار کنیم احتیاجی
به یک کلاس Model داریم، روی پوشه پکیجتون راست کلیک کرده و روی new و سپس Class java کلیک کرده، یک نام
دلخواه مثلا Items تایپ کنید

و OK را بزنید تا کلاس ایجاد شود( دقت کنید که نام کلاس حتما باید با حرف بزرگ شروع شود)
خب حالا باید متغییرھای مد نظرمون رو به کلاس اضافه کنیم ،

که در این مثال ما ٣ تا متغییر وجود دارد (یک تصویر و ٢تا
تکست ویو) خب حالا باید  متد سازنده(Constructor (و متدھای And Getter
Setter را به کلاسمان اضافه کنیم ، کدھای نھایی کلاس به شکل زیر خواھد بود:

آموزش ساخت view List سفارشی در برنامه نویسی اندروید

خب کارمون با این کلاس تموم شد حالا باید بریم و یک آداپتر بسازیم ، برای ساخت آداپتر باید یک کلاس جدید با نام دلخواه مثلا
Adapter بسازیم خب این کلاس ما باید از یک آداپتر extends شود که ما در اینجا ازBaseAdapter استفاده میکنیم

خب بعد از عملیات ارث بری لازمه که متد مورد نظر Implement شود  خب حالا لازمه دو
متغییر به کلاس اضافه کنیم یکی از نوع Context و با نام دلخواه cntx و دیگری یک اری لیست از نوع Items) یعنی نوع

کلاسی که خودمان ساختیم) و با نام دلخواه item .

بعد از اینکار باید متد سازنده را به ھمان روش قبلی فراخوانی کنیم، کدھای
کلاس ما تا به اینجای کار به شکل زیر خواھند بود:

متد اولی (getCount (عمل شمارش آیتم ھا را انجام میدھد در نتیجه باید size.item را برای ما برگرداند،

متد بعد (getItem (مربوط به مکان یا شماره آیتم موردنظر است در نتیجه باید مقدار (i(get.item را برای ما برگرداند،
متد بعدی آی دی ھر کدام ازآیتم ھا را برمیگرداند، متد آخر ھم که متد اصلی ماست

و پردازش اطلاعات ما برعھده این متد است ،
خب طبق آموزشی که درفیلم میبینید این متدھا را تکمیل میکنیم تا در نھایت به کد ھای زیر برسیم:

خب ٣تا متد اولی رو که توضیح دادم فقط مونده کدھایی که در متد آخری اضافه کردیم،

درخط اول یک شرط گذاشتیم که تا وقتی
view برابر null بود ینی تا زمانی که صفحه اکتیویتی جا برای ضافه شدن آیتم جدید داشت توسط LayoutInflater یک آیتم
جدید به لیست ویو اضافه کند.
در خط بعدی یک شی جدید از کلاس Items ایجاد کردیم تا توسط (i(getItem موقعیت آیتم ھای فعلی که در حال اضافه شدن به
لیست ویو ھست را مشخص کند. در ٣ خط بعدی اومدیم عمل کستینگ را برای ویجت ھا انجام دادیم

و در خط ھای بعدی عمل
انتقال داده به ویجت را انجام دادیم.
خب تا ایجا کارمون با کلاس آداپتر ھم تموم شد حالا باید بریم سراغ کلاس جاوای اون اکتیویتی که قرار لیست ویو ما

را نمایش دھد، خب اول اجازه بدین کد ھای کامل شده را بنویسیم و بعد توضیح میدم:

 

خب اول اومدیم لیست ویو را تعریف و عمل کست کردن را انجام دادیم

سپس یک اری لیست از نوع کلاسمان (Items (و با نام
دلخواه arrayList ساختیم

و در قسمت پایین یک شی جدید از کلاس Adapter با نام دلخواه adp ساختیم و در داخل پرانتز دو
پارامتر از ما میخواد که اولی مربوط به context میشه که برابر this قرار دادیم

و پارامتر بعدی اسم اری لیست رو از ما میخواد
که arrayList را وارد میکنیم

در خطھای بعدی اومدیم و با اون خط کدھا آیتم ھای مورد نظرمان را به لیست ویو اضافه کردیم

که قسمت اولش مربوط به اسم تصویر ماست، قسمت دوم و سوم ھم مربوط به Textview ھاست.
و در آخر ھم با خط کد
(adp(setAdapter.List آداپتر ساخته شده را برای لیست ویو ست میکنیم

(داخل پرانتز اسم آداپتررا وارد میکنیم) خب دیگه کار
تمومه و لیست ویو ما به درستی اجرا میشود.

همچنین ببینید:

اسکریپت فارسی کوتاه کننده لینک AdLinkFly

مجموعه بک درآپ کودک ویژه تولد ۲ سالگی یا ماهگرد

اگر مطلب را می پسندید لطفا آنرا به اشتراک بگذارید.

دیدگاهی بنویسید

لطفا جواب معادله امنیتی زیر را وارد کنید *

0