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

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

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

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

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,773
    تشکر شده:
    6,457
    امتیاز دستاورد:
    113
    در قسمت اول آموزش با مقدمات لیست و نحوه نمایش آیتم ها در لیست آشنا شدیم. از آنجاییکه خیلی مثال ساذه و پایه ای بود شاید جذابیت لازم را نداشت. اجازه بدهید یکم داستان را پیشرفته تر کنیم. در این مثال بجای استفاده از فرم پیش فرض اندروید میخواهیم خودمان لیست را طراحی کنیم. البته منظور از طراحی لیست، طراحی یک سطر آن است و میدانیم که این طرح به تمام سطرها اعمال خواهد شد.

    ابتدا پروژه جدیدی بسازید و تنظیمات آنرا به دلخواهتان انجام دهید (منظور نام پروژه و پکیج و غیره است). خب، کار را با طراحی یک سطر شروع میکنیم. فرض کنید که هر سطر از یک آیکون در سمت چپ و متنی در سمت راست تشکیل شده باشد. ساده ترین حالت ممکن ساخت این طرح با فرمت XML میباشد. بنابراین فایلی با نام row.xml در مسیر /res/layout ایجاد کنید و کد زیر را در آن وارد کنید.


    [​IMG]
    ​
    همانطور که ملاحظه میکنید طراحی سطر بسیار ساده است و نیاز به توضیح اضافه ای ندارد (البته اگر مشکلی در جایی داشتید حتماً از طریق کامنت بپرسید). فراموش نکنید که حتماً فایل گرافیکی مربوط به آیکون را در Drawable قرار دهید.
    حال نوبت به کد برنامه میرسد که در تصویر زیر آنرا ملاحظه میکنید:
    [​IMG]
    ​
    همانطور که ملاحظه میکنید این کد با کدی که در قسمت اول قرار داده شد یکسان است فقط در سطر ۲۴ با هم تفوت دارند. دومین آرگومان متد setListAdapter میگوید که بر طبق چه فرمتی (یا طرحی) لیست را بسازم. در قسمت اول گفتیم که از طرح پیش فرض اندروید استفاده کن. ولی در مثال میگوییم که از طرحی که خودمان ساخته ایم (row.xml)، استفاده کن. فراموش نشود که برای رفرنس به row.xml حتماً بصورت R.layout.row باید معرفی نشود.

    همچنین در متد setListAdapter تغییر دیگری هم داریم. آرگومان سوم (R.id.label) میگوید که آیتم های تکست را در کجا قرار دهد. مجدداً row.xml را نگاه کنید. id آیتم TextView با نام label معرفی شده است. در این آرگومان هم داریم میگوییم که تکست ها را به این label اضافه کن.
    در نهایت با آنچه که در متد onListItemClick تعریف شده، با کلیک بر روی هر سطر، آن تکست در بالای صفحه نمایشگر ظاهر میشود.
    [​IMG]
    ​