1. مهمان گرامی، جهت ارسال پست، دانلود و سایر امکانات ویژه کاربران عضو، ثبت نام کنید.
    بستن اطلاعیه

کار کردن با لیست ها (۱/۵)

شروع موضوع توسط minaaa ‏21/11/11 در انجمن برنامه نویسی

  1. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,773
    تشکر شده:
    6,457
    امتیاز دستاورد:
    113
    یکی از مهمترین ویدجت ها در سرتاسر اندروید همین ویدجت ListView است. اگر علت آنرا بپرسید دلیل خیلی ساده ای دارد چون به وفور از آن استفاده میشود. در گستره وسیعی از کاربردهای مختلف مانند لیست شماره تلفن ها، تماسها، ایمیل ها یا حتی لیست E-Bookها و غیره، قرار میگیرد. یکی از بهترین قسمتهای ماجرا این است که هرطور که مایلید میتوانید این لیست را بسازید. خبر خوب اینکه تا هرکجا که تخیلتان اجازه میدهید میتوانید آنرا تغییر دهید (البته با توجه به مشخصات دیوایس). در ادامه با چند مثال کاربرهای لیست را شرح میدهیم و در پایان یادخواهیم گرفت چگونه سرعت پردازش لیست ها را تا ۱۵۰ درصد با استفاده از Inflaterها افزایش دهیم (بر طبق گفته گوگل). ListView در حالت کلاسیک بصورت لیست متنی است. فرض کنید که آرایه ای شامل یکسری نام داریم که میخواهیم آنرا نشان دهیم. برای نشان دادن هر نام در هر سطر احتیاج به Layout داریم. بصورت پیش فرض اندروید برای این منظور Layoutی فراهم کرده است که از آن استفاده میکنیم. به مثال زیر توجه کنید. تصویر زیر فایل main.xml برنامه است. نیازی به توضیح خاصی ندارد. نشان میدهد که در صفحه نمایش، اول از همه یک TextView داریم که قرار است زمانیکه کاربر بر روی هر آیتم از لیست کلیک کرد نام آنرا نشان دهد. و در ادامه ListView نیز در داخل این Layout قرار داده شده است. نکته مهم اینکه اگر برای ListView یک id قرار دهیم و نام آنرا هم list بگذاریم، اندروید اتوماتیک وار آنرا میشناسد و برای تولید خودکار سطرها از آن استفاده میکند. [​IMG]
    حالا به کد برنامه میرسیم. اول کد برنامه را ملاحظه کنید.
    [​IMG]
    مهمترین قسمت برنامه خط ۲۴ و ادامه آن در خط ۲۵ برنامه است. در اینجا آداپتر مانند پلی مابین دیتایی که میخواهیم نمایش دهیم و ListView می باشد. ArrayAdapter برای نمایش نامها به سه پارامتر نیاز دارد. اول کانتکست که با کلمه this مشخص شده. سپس فرمت هر سطر لیست، که در اینجا نوع پیش فرض اندروید معرفی شده است و در نهایت items که آرایه ای از رشته هایی است که قرار است نمایش داده شود. دقت کنید بر خلاف اینکه TextView از فایل xml به کد برنامه معرفی و لینک شده است، ListView از فایل xml به کد برنامه معرفی و لینک نشده که دلیلش را چند سطر بالاتر توضیح دادم. در نهایت با اجرای برنامه لیست شامل نامهای موجود در آرایه items نمایش داده خواهد شد که با کلیک بر روی هر نام از لیست (با توجه به آنچه در متد OnListItemClick آورده شده)، آن نام در TextView نشان داده میشود. در آموزش بعد با سفارشی کردن سطرهای لیست آشنا خواهیم شد. سفارشی کردن به این معنی است که میخواهیم فرمت هر سطر را از حالت متنی صرف خارج کنیم و فرضاً تصویر هم در کنار متن داشته باشیم.