کانال بله, جهت پشتیبانی و اطلاع رسانی کانال بله, جهت پشتیبانی و اطلاع رسانی
عضویت

آموزش ساخت یک ListView سفارشی در اندروید

آموزش ساخت یک ListView سفارشی در اندروید
شرح مختصر پروژه

در این مقاله قصد داریم تا نحوه ساخت یک ListView سفارشی را برای شما توضیح دهیم. در این پروژه ما قصد داریم اهداف زیر را پیاده سازی نماییم: ساخت یک کلاس Model جهت مقداردهی نمودن داده های مورد نظر برای نمایش در ListView...

توضیحات پروژه

دوره آموزش آندروید

دوره آموزش اندروید

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

رمز فایل :tahlildadeh.com

 

کلیه حقوق مادی و معنوی این مقاله متعلق به آموزشگاه تحلیل داده می باشد و هر گونه استفاده غیر قانونی از آن پیگرد قانونی دارد .

 

با عرض سلام و خسته نباشید به شما دانشجویان محترم آموزشگاه تحلیلگر داده ها. در این مقاله قصد داریم تا نحوه ساخت یک ListView سفارشی را برای شما توضیح دهیم.

 

اهداف پروژه :

در این پروژه ما  قصد داریم اهداف زیر را پیاده سازی نماییم:

ساخت یک کلاس Model جهت مقداردهی نمودن داده های مورد نظر برای نمایش در ListView

ساخت قالب دلخواه ListView

نمایش داده های وارد شده Model در ListView

 

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

ListView در حالت کلاسیک بصورت لیست متنی می باشد. فرض نمایید که آرایه ای شامل یکسری نام داریم که می خواهیم آنرا نمایش دهیم. برای نمایش دادن هر نام در هر سطر احتیاج به Layout داریم. بصورت پیش فرض اندروید برای این منظور  Layoutی فراهم کرده است که از آن استفاده می نماییم.

جهت نمایش داده ها در ListView به سه قسمت نیاز داریم:

منبع داده « DataSource »

داده هایی که قرار است در ListView نمایش داده شوند، در داخل منبع داده قرار گرفته اند. با استفاده از ArrayList و یا Cursor، می توان برای ListView منبع داده ایجاد نمود که در واقع ArrayList برای منبع داده های آرایه ای و Cursor برای منبع داده هایی که از پایگاه داده دریافت شده اند، استفاده می گردد.

آداپتور « Adapter »

وظیفه آداپتور، دریافت داده ها از منبع داده و تبدیل آنها به سطرهایی جهت نمایش در ListView است. حال اگر آن داده ها، متن های ساده ای باشند می توان به راحتی با استفاده از کلاس ArrayAdapter، آداپتور مناسبی را ایجاد نمود ولی در صورتی که منبع داده شامل متن، تصویر و ... باشد، می بایست یک آداپتور سفارشی با استفاده از کلاس های ArrayAdapter و یا BaseAdapter، ایجاد نمود.

آداپتور ویو « Adapter View »

وظیفه آداپتور ویو، دریافت داده ها از آداپتور و نمایش آنها می باشد. سه نوع آداپتور ویو در برنامه نویسی اندروید وجود دارد:

ListView

GridView

Spinner

در واقع هر کدام از موارد ذکر شده، می توانند سطرهای ایجاد شده در آداپتور را دریافت و به کار نمایش دهند.

 

برای شروع کار ابتدا می بایست یک پروژه جدید در محیط Eclipse ایجاد نماییم. برای این منظور از منوی File زیر منوی New و سپس زیر منوی Android Application Project را انتخاب می نماییم. (شکل 1)

 

clip_image002[10]

شکل 1

 

همچنین برای ساده تر شدن و بالا بردن سرعت کار می توانید از منوی ابزار ها، منوی New و سپس Android Aplication Project را انتخاب نمایید.(شکل 2)

 

 

clip_image004[10]

شکل 2

 

با انجام هر دو روش پنجره جدیدی با عنوان New Android Application باز می گردد. (شکل 3)

 

clip_image006[6]

شکل 3

 

در این پنجره قسمت هایی وجود دارد که در زیر به توضیح آنها می پردازیم :

Aplication Name  : در این فیلد می بایست نام برنامه خود را وارد نمایید. توجه داشته باشید که هر مقداری را که در این فیلد وارد نمایید، برنامه با این نام در لیست برنامه های نصب شده قرار خواهد گرفت.

در این فیلد می توانید یک رشته فارسی نیز وارد نمایید.

Project Name  : در این فیلد می بایست نام کلی پروژه خود را وارد نمایید و بهتر است که یک رشته با معنا و مرطبت با برنامه خود وارد نمایید.

زمانی که مقدار فیلد Aplication Name را وارد می نمایید، فیلد Project Name نیز بصورت خودکار همان نام را وارد می نماید. توجه داشته باشد که اگر فیلد Aplication Name را با یک رشته فارسی مقداردهی نمودید، برای جلوگیری از خطاها می بایست رشته فارسی تولید شده در فیلد Project Name را با یک رشته معادل انگلیسی جایگزین نمایید.

Package Name :  در این فیلد می بایست پکیج پروژه خود را تعیین نمایید که بهتر است آدرس وب سایت خود را بدون درج http  و www و بصورت از آخر به اول و به همراه نام وارد شده در فیلد Project Name وارد نمایید. این نوع مقداردهی به برنامه های مارکت نظیر بازار و Google Paly این امکان را میدهد تا زمانی که نسخه جدیدی از برنامه شما ساخته و آماده منتشر گردید باخبر شده و نسخه جدید برنامه تان را جایگزین نسخه قبلی نماید.

Minimum Required SDK : در این لیست انواع API های « نسخه های سیستم عامل اندروید » منتشر شده توسط گوگل وجود دارد. با انتخاب هر کدام از آنها مشخص می نمایید که برنامه تان به چه حداقل نسخه ای از سیستم عامل اندروید نیاز دارد. برای مثال اگر گزینه API 14 را انتخاب نمایید، برنامه تان در سیستم عامل اندروید پایین تر از اندروید 4 یا همان IceCream Sandwich، نصب و اجرا نمی گردد.

اگر از امکانات خاص نسخه های جدیدتر سیستم عامل اندروید استفاده نمی نمایید پیشنهاد می گردد که API 8  را انتخاب نمایید. چرا که با انتخاب این نسخه از سیستم عامل اندروید مطمئن خواهید بود که برنامه شما در تمامی گوشی ها و تبلت ها اجرا خواهد شد.

Target SDK : در این لیست انواع API های « نسخه های سیستم عامل اندروید » منتشر شده توسط گوگل وجود دارد. با انتخاب هر کدام از آنها مشخص می نمایید که بالاترین نسخه اندرویدی که برنامه شما می تواند در آن نصب و اجرا گردد کدام نسخه است. بدیهی ست که هرچه سطح API انتخاب شده بالاتر باشد، گوشی ها و تبلت های جدید نیز می توانند از برنامه شما استفاده نمایند.

 

Compile With : در این لیست انواع API های « نسخه های سیستم عامل اندروید » منتشر شده توسط گوگل وجود دارد. با انتخاب هر کدام از آنها مشخص می نمایید که برنامه Eclipse از کدام نسخه از سیستم عامل اندروید برای نوشتن کلاس های برنامه و همچنین کامپایل و تست نمودن آن استفاده نماید.

Theme : در این لیست می توانید یک Theme برای برنامه خود انتخاب نمایید.

توجه داشته باشید زمانی که مقدار Compile With را کمتر از API 14 انتخاب نمایید، از این قسمت نمی توانید استفاده نمایید و می بایست از لیست موجود گزینه None رو انتخاب نمایید.

پس از مقداردهی نمودن فیلد های ذکر شده بر روی دکمه Next کلیک می نماییم تا به مرحله بعدی ایجاد پروژه برویم. (شکل 4)

 

clip_image008

شکل 4

 

در مرحله بعدی اگر گزینه Create custom lunche icon را انتخاب نمایید، برنامه Eclipse به شما اجازه میدهد تا برای برنامه خود یک عکس جهت ساختن icon انتخاب و یا با استفاده از ابزار های خود برنامه Eclipse، icon مورد نظر خود را ترسیم نمایید. توجه داشته باشید که در صورت عدم انتخاب این گزینه، صفحه مربوطه برای شما باز نخواهد شد.

همچنین اگر گزینه Create Activity را انتخاب نمایید، برنامه Eclipse به شما اجازه میدهد که نام و نوع activity برنامه تان را انتخاب نمایید.

این دو گزینه را انتخاب می نماییم و سایر گزینه ها را به حالت پیش فرض خود می گذاریم. حال مجددا بروی دکمه Next کلیک می نماییم تا به مرحله بعدی ایجاد پروژه برویم. (شکل 5)

 

 

clip_image010[6]

شکل 5

 

در مرحله بعدی می توانید برای برنامه خود یک icon انتخاب و یا رسم نمایید.

دکمه image برای انتخاب یک عکس ترجیحا با فرمت png به عنوان icon برنامه

دکمه Clipart برای انتخاب یک clipart « شکلک » به عنوان icon برنامه

دکمه Text برای ورود یک نوشته به عنوان icon برنامه

مورد استفاده قرار می گیرند.

ما دکمه image را انتخاب و پس از انتخاب کردن عکس مورد نظر به عنوان icon برنامه بر روی دکمه Next کلیک می نماییم تا به مرحله بعدی ایجاد پروژه برویم. (شکل 6)

 

clip_image012[6]

شکل 6

 

در مرحله بعدی گزینه Create Activity را انتخاب می نماییم و از لیست موجود که بیانگر انتخاب نوع Activity برنامه می باشد گزینه Blank Activity را انتخاب می نماییم. (شکل 7)

clip_image014[6]

شکل 7

 

در مرحله آخر نیز باید برای activity و layout خود یک نام انتخاب نمایید. ما نام انتخاب شده پیش فرض را قبول کرده و بر روی دکمه Finish کلیک می نماییم تا پروژه مان ساخته شود. (شکل 8)

 

clip_image016[6]

شکل 8

 

تا اینجای کار ما پروژه خود را در برنامه Eclipse ایجاد نموده ایم. حال برای ادامه کار می بایست کلاس Model خود را ایجاد نماییم.

ListView که قصد طراحی آنرا داریم، سه قسمت می باشد. یک قسمت برای نمایش عکس، یک قسمت برای نمایش نام شرکت و قسمت آخر نیز برای نمایش آدرس وب سایت می باشد. بنابراین می بایست در کلاس Model سه متغیر برای مقداردهی نمودن سه قسمت ذکر شده، تعریف و ایجاد نماییم. برای این منظور ابتدا پروژه خود در پنجره Package Explorer را انتخاب می نماییم و سپس بر روی آیکون clip_image017[6] در نوار ابزار کلیک می نماییم تا کلاس Model خود را ایجاد نماییم. بعد از کلیک نمود بر روی آیکون فوق الذکر پنجره Java New Class باز می گردد. در این پنجره و در فیلد Package، نام پکیجی که تمایل داریم کلاسمان به آن اضافه گردد را انتخاب می نماییم. برای راحتی کار نیز می توانیم با انتخاب نمودن دکمه Browse، پکیج مورد نظر خود را انتخاب نماییم. (شکل 9)

 

 

clip_image019

شکل 9

 

سپس در فیلد Name، نام کلاس خود را وارد نموده و بر روی دکمه Finish کلید می نماییم. (شکل 10)

 

 

clip_image021

clip_image023

شکل 10

 

بعد از ایجاد نمودن کلاس، می بایست متغیرهای مورد نیاز خود را وارد و برای هر کدام از آنها دو متد Setter و Getter ایجاد نماییم. برای راحتی کار می توانید بر روی صفحه کلیک راست نمایید و از منوی باز شده، منوی Source و سپس منوی Generate Getters and Setters… را انتخاب نمایید و در پنجره باز شده هر سه متغیر ایجاد شده را انتخاب نمایید. (شکل 11)

 

clip_image024

شکل 11

 

بعد از ایجاد نمودن کلاس Model، می بایست layout اصلی برنامه و همچنین ListView خود را طراحی نماییم.

برای طراحی نمودن layout اصلی برنامه، فایل activity_main.xml خود را تغییر می دهیم. (شکل 12)

 

clip_image025

شکل 12

 

در layout اصلی برنامه ما تنها یک ابزار ListView قرار داده ایم و در مرحله بعد می بایست فایل xml دیگری را ایجاد نماییم تا بوسیله آن بتوانیم هر سطر از ابزار ListView را از استایل پیش فرص به استایل دلخواه خودمان که قرار است یک عکس و دو متن نمایش داده شود، تغییر دهیم.

برای اضافه نمودن فایل xml به عنوان یک layout برای پروژه خود، ابتدا پوشه layout که در پوشه res قرار دارد را انتخاب می نماییم و سپس بر روی آیکون  clip_image026  در نوار ابزار کلیک می نماییم. سپس در پنجره باز شده، در فیلد File یک نام برای layout خود وارد می نماییم و بعد از آن، از قسمت Root Element، گزینه TableLayout را انتخاب و در آخر بر روی دکمه Finish  کلیک می نماییم. (
شکل 13)

 

clip_image028[6]

شکل 13

 

 

 

بعد از ایجاد شدن فایل، layout مورد نظر خود را برای هر کدام از سطرهای ListView ایجاد می نماییم. (شکل 14)

 

clip_image030[6]

شکل 14

 

 

همچنین مقادیر لازمه را در فایل string.xml وارد می نماییم. (شکل 15)

 

clip_image031[6]

شکل 15

 

در مرحله بعدی می بایست کلاس جدیدی را ایجاد نماییم تا به واسطه آن بتوانیم یک آداپتور سفارشی ایجاد و از layout طراحی شده « tabitem.xml » استفاده نماییم. برای این منظور ابتدا در نوار ابزار بر روی آیکون clip_image017[7] می نماییم تا یک کلاس جدید با نام CustomAdapter با توجه به روش های ذکر شده در قبل ایجاد نماییم.

بعد از ایجاد نمودن java class، کدهای مورد نیاز را داخل آن وارد می نماییم. (شکل 16)

 

clip_image033

شکل 16

 

زمانی که کلاسمان را از کلاس ArrayAdapter گسترش می دهیم، می بایست نوع کلاس ArrayAdapter را نیز مشخص نماییم که معمولا از نوع داده ای String استفاده می گردد. اما به دلیل آنکه در این مثال ما از یک Class Model استفاده نموده ایم، می بایست نوع آنرا برابر با نام کلاس Class Model خود قرار دهیم.

زمانی که کلاسمان را از کلاس ArrayAdapter گسترش می دهیم، می بایست از Constructor های پیش فرض تعریف شده کلاس ArrayAdapter استفاده نماییم. برای کلاس ArrayAdapter شش متد Constructor تعریف شده است که با توجه به کاربرد برنامه تان می بایست از یکی از آنها استفاده نمایید. برای دسترسی به آنها، زمانی که ماوس خود را بر روی نام کلاس خود « CustomAdapter » چند ثانیه نگاه دارید، شش متد  Constructorتعریف شده برای شما نمایش داده می شود که می بایست یکی از آنها را انتخاب نمایید.

 

 در کلاس بالا و قبل از تعریف متد Constructor، متغیر های لازم در طول کلاس را تعریف نموده ایم.

متد Constructor نیز دارای چهار پارامتر ورودی می باشد که سه پارامتر اول، پیش فرض خود کلاس ArrayAdapter می باشد و پارامتر چهارم، پرامتری می باشد که خودمان اقدام به تعریف آن نموده ایم. در ادامه کاربرد پارامترهای ورودی را برای شما بازگو خواهیم کرد.

پارامتر اول شئی از نوع کلاس Context می باشد و اشاره به کلاس Activity دارد که کلاس CustomAdapter در آن صدا زده شده است. در ادامه همین کلاس با استفاده از این پارامتر، به یکی از سرویس های خود سیستم عامل اندروید دسترسی پیدا خواهیم نمود.

پارامتر دوم متغیری از نوع داده ای int می باشد. با استفاده از این پارامتر، نوع استایل ابزار ListView خود را مشخص می نماییم که یک مقدار از پیش تعریف شده در سیستم عامل اندروید می باشد.

پارامتر سوم شئی از نوع کلاس List می باشد. با استفاده از این پارامتر، داده هایی که می خواهیم در هر سطر از ListView نمایش داده شود را تعریف می نماییم.

هرگاه شئی از کلاس List تعریف می نماییم، می بایست نوع کلاس List را نیز مشخص نماییم. در این پروژه به علت استفاده از Class Mode برای مقداردهی سطرهای ListView، از نام کلاس Class Model ایجاد شده استفاده نموده ایم.

پارامتر چهارم شئی از نوع کلاس Resources می باشد. با استفاده از این کلاس می توانیم به منابع پروژه « منابع وجود در زیر پوشه های پوشه res » دسترسی پیدا نماییم. با استفاده از این کلاس، عکس هایی که قرار است در هر سطر از ListView نمایش داده شود را انتخاب می نماییم.

 

بعد از تعریف نمودن متد Constructor، در ادامه می بایست پارامترهای پیش فرض توضیح داده شده « سه پارامتر اول متد Constructor » را با استفاده از دستور super به کلاس ArrayAdapter ارسال نماییم. توجه داشته باشید که انجام این کار لازم و ضروری می باشد. بعد از انجام این عمل، پارامترهایی که در متد Constructor تعریف نموده ایم و در ادامه کار به آنها احتیاج پیدا خواهیم نمود را در متغیرهایی که در ابتدای کلاس تعریف نموده ایم، ذخیره می نماییم.

 

در ادامه متدی به نام getView را بازنویسی خواهیم نمود. این متد برای ایجاد سطرهای ListView مورد استفاده قرار می گیرد. یعنی زمانی که برنامه خود را اجرا می نماییم این متد به تعداد سطرهایی که در برنامه مان برای ListView تعیین نموده ایم، توسط سیستم عامل اندروید صدا زده می شود و سطرهای ListView مان را ایجاد می نماید. (شکل 17)

 

 

 

clip_image034[4]

شکل 17

 

در ابتدای این متد، شئی با نام inflater و از کلاس LayoutInflater ایجاد می نماییم. با استفاده از کلاس LayoutInflater به سرویسی با نام LAYOUT_INFLATERSERVICE دسترسی پیدا خواهیم نمود که برای ایجاد دسترسی به فایل tabitem.xml مورد نیاز می باشد.

در خط بعدی با استفاده از متد inflater شی inflater، فایل tabitem.xml را انتخاب می نماییم و در شئی با نام rowView ذخیره می نماییم. حال با استفاده از از این شی و متد findViewById می توانیم به تمامی ابزارهای موجود در layout طراحی شده دسترسی داشته باشیم.

در خط بعدی دسترسی های خود به دو ابزار TextView و ImageView را ایجاد نموده ایم.

در ادامه نیز می بایست دسترسی به داده هایی که می خواهیم در ابزارهایمان درج شوند را ایجاد نماییم. برای این منظور با استفاده از متغیر position و متد get شی data، داده های ردیف مورد نظر را انتخاب و در شئی با نام tempValues ذخیره می نماییم.

 

متغیر position یکی از پرامترهای ورودی متد getView می باشد و به شماره ردیفی که توسط کاربر انتخاب و یا ردیفی که در حین اجرای برنامه ساخته می شود، اشاره دارد.

 

حال که به داده های مورد نظر خود دسترسی پیدا نموده ایم، می بایست آنها را در ابزارهای انتخاب شده درج و نمایش دهیم. برای این منظور با استفاده از متد های Getter تعریف شده در کلاس Model، داده ها را واکشی کرده و با استفاده از متد setText در ابزارهای TextView و متد setImageResource در ابزار ImageView نمایش می دهیم.

توجه داشته باشید که با استفاده از متد getImage کلاس tempValues، نام عکسی هایی که در پوشه drawable وجود دارند را بر می گردانیم نه خود عکس را. برای آنکه بتوانیم به عکس های موجود در پوشه ذکر شده دسترسی پیدا نماییم، از متد getIdentifire شی res « کلاس Resource » استفاده می نماییم. این متد سه پارامتر ورودی دریافت می نماید که مقداردهی نمودن هر سه پرامتر آن الزامی می باشد. پارامتر اول تعیین کننده نام فایلی می باشد که قصد دسترسی و خواندن آن را داریم و پارامتر دوم تعیین کننده محل ذخیره شدن آن فایل می باشد که نام یکی از زیر پوشه های موجود در پوشه ی res می باشد و پارامتر سوم نیز نام پکیج برنامه می باشد.

 

بعد از اتمام کار، در آخر شی  rowView را به کلاس صدا زننده آن باز می گردانیم.

در ادامه نیز کدهای کلاس MainActivity و نحوه استفاده از کلاس CustomAdapter را درج خواهیم نمود.

اولین کدی که می بایست به کلاس MainActivity اضافه نماییم متد onCreate می باشد. این متد یکی از متدهای اصلی برنامه و همین طور چرخه حیات برنامه های اندرویدی می باشد و زمانی که برنامه برای اولین بار اجرا می گردد و یا دستگاه اندرویدی ما از حالت portrait به حالت landscape و یا بر عکس تغییر می کند، این متد فراخوانی می گردد.

یکی از دستوراتی مهمی که باید به این متد اضافه گردد دستور setContentView است. وظیفه این دستور به نمایش در آوردن layout برنامه می باشد (شکل 18)

 

clip_image035[4]

شکل 18

مقدار activity_main نام فایل xml مربوط به layout برنامه مان می باشد.

همچنین دستور savedInstanceState حالت جاری layout برنامه را ذخیره می نماید. به این معنا که، فرض نمایید بر روی layout خود یک ابزار EditText قرار داده اید و مقدار نام خودتان را درون آن وارد کرده اید. زمانی که حالت دستگاه اندرویدی خودتون را به landscape و یا portrait تغییر دهید مشاهده می نمایید که مقدار نام شما هنوز در EditText وجود دارد و پاک نشده است. دلیل آن به خاطر استفاده از دستور فوق می باشد.

در مرحله بعدی می بایست کدهایی بنویسیم تا بوسیله ی آن  بتوانیم به ابزار ListView و کلاس Model ساخته شده دسترسی پیدا نماییم. (شکل 19)

 

clip_image037

شکل 19

اگر در زمان تعریف یک متغیر و یا یک شی، آنرا در ابتدای کلاس جاری و قبل از تمامی متدهای خود تعریف نمایید، آنها به عنوان سراسری محصوب می شوند و می توانید به راحتی در تمامی متدها و کلاس های کلاس جاری از آن استفاده نمایید.

حال که دسترسی های لازم به ابزار  ListViewو کلاس CostumeAdapter ایجاد شده است، در مرحله بعد کد های لازم جهت نمایش ListView سفارشی را وارد می نماییم. (شکل 20)

clip_image038

شکل 20

کدهای بالا را در ادامه کدهای وارد شده قبلی در متد onCreate قرار می دهیم.

 

در کد بالا، با استفاده از تابع setListData که خودمان اقدام به تعریف آن نموده ایم، داده های دلخواه خود را که قصد نمایش آنها در ListView را داریم، تولید می نماییم. در خط بعدی نیز شئی با نام res و از کلاس Resource ایجاد نموده ایم که همان طور که بالاتر توضیح داده شد، وظیفه دسترسی به عکس ها را دارد. در خط بعدی نیز شئی با نام adapter و از کلاس CustomAdapter ساخته ایم. این کلاس چهار پارامتر ورودی دریافت می نماید. پارامتر اول شئی از کلاس Context می باشد و پارامتر دوم یک مقدار ثابت و از پیش تعریف شده می باشد که نوع استایل ListView مان را تعیین می نماید و پارامتر سوم نیز شی date می باشد. این شی حاوی اطلاعاتی می باشد که قصد نمایش آنها در ListView را داریم و توسط تابع srtListData مقداردهی شده است. پارامتر چهارم نیز شی res می باشد.

برای ایجاد یک شی از نوع Context، می توانیم از دستور getBaseContext و یا getApplicationContext استفاده نماییم.

 

بعد از ایجاد نمودن شی adapter، آنرا با استفاده از متد setAdapter به ابزار ListView مان نسبت می دهیم. با انجام این عمل، layout سفارشی ساخته شده « فایل tabitem.xml » به همراه داده های دلخواه ایجاد شده « شی data »، را به ابزار ListView نسبت داده ایم و آنرا به صورت سفارشی شده در آورده ایم.

در ادامه نیز با استفاده از متد setOnItemClickListener، عملیات انتخاب نمودن یک سطر از ListView توسط کاربر را شبیه سازی نموده ایم و کاربر هر کدام از سطرهای ListView را انتخاب نماید، تمامی اطلاعات درج شده در آن سطر در یک کادر کوچک نمایش داده می شود.

کلاس Toast کلاسی می باشد که برای نمایش دادن پیغام هایی « با توجه به اتفاقاتی که در طول اجرای برنامه رخ می دهد » به کاربر، مورد استفاده قرار می گیرد. این کلاس سه پارامتر ورودی دارد که مقداردهی کردن هر سه پارامتر الزامی می باشد. پارامتر اول، شئی از نوع Context و پارامتر دوم، پیغام مورد نظر جهت نمایش به کاربر و پارامتر سوم، مدت زمان به نمایش درآمدن کادر پیغام می باشد که می توان از دستور Toast.LENGTH_LONG و یا Toast.LENGTH_SHORT و یا یک عدد صحیح به میلی ثانیه باشد.

 

در ادامه کدهای مربوط به تابع setListData را وارد می نماییم. (شکل 21)

 

clip_image039

شکل 21

در ابتدای این متد از یک حلقه تکرار for استفاده نموده ایم و تعیین نموده ایم که دستورات موجود در این تابع 10 بار اجرا گردند. در ابتدای بدنه حلقه for، شئی با نام model و از کلاس Model ساخته شده ایجاد نموده ایم و در ادامه با استفاده از متدهای Setter تعریف شده، داده های دلخواهمان را که می خواهیم در ListView نمایش داده شوند را ایجاد نموده ایم و در انتها داده های ایجاد شده را با استفاده از متد add به شی data اضافه نموده ایم.

توجه نمایید که با استفاده از متد setImage، نام عکس هایی که می خواهیم در ListView نمایش داده شوند را ایجاد نموده ایم و می بایست عکس هایی با همین نام ها در پوشه drawable وجود داشته باشند.

زمانی که برنامه را اجرا نمایید، نمایی شبیه به عکس زیر خواهید داشت. (شکل 22)

 

 

clip_image041

 

شکل 22

 

 

 

 

در اینجا کار ما به اتمام میرسد. امیدواریم نهایت استفاده از این مقاله را برده باشید.

شاد و پیروز باشید.

 

 

1394/09/03 18439 1486
رمز عبور : tahlildadeh.com یا www.tahlildade.com
نظرات شما

نظرات خود را ثبت کنید...