آموزش Multilevel Expandable ListView در اندروید

سلام دوستان در این سری از آموزش برنامه نویسی اندروید به آموزش Multilevel Expandable ListView در اندروید می پردازیم قبلتر آموزش Expandable ListView را برای شما قرار داده بودیم در امروز در صدد آمدیم تا آموزش Multilevel Expandable ListView یا listview هایی چند طبقه (چند منظوره ) را برای شما قرار دهیم در ادامه می توانید پیش نمایش از Multilevel Expandable ListView را مشاهده کرده تا درک آن برای شما راحت تر باشد در ادامه با ما همراه باشید.
 

اگر عکس بالا را نگاه کنید متوجه می شوید که Listview به دو Child های تو در تو تقسیم شده است یعنی اولی Group دومی Child و سومی Child درون Child دوم به مثال زیر توجه کنید.

  • رنگ
    • نام رنگ
      • رنگ قرمز

ابتدا فایل زیر را دانلود کرده و در پوشه drawable قرار دهید. این فایل شامل عکس هایی است که در برنامه استفاده شده است.
لینک دانلود
وارد پوشه layout شده و یک فایل به نام row_first.xml ایجاد کرده و کدهای زیر را در آن قرار دهید.

کد بالا row اولی listview را ایجاد می کند اسم آن را می گذاریم Group تا در ادامه آموزش راحتر آن را توضیح دهیم .
یک فایل دیگر در همان پوشه به نام row_second.xml ایجاد کرده و کدهای زیر را در آن قرار دهید.

کد بالا row دوم که child اول ما می شود را ایجاد می کند نام آن را برابر با Child اول  قرار می دهیم.
یک فایل دیگر در همان پوشه به نام row_third.xml ایجاد کرده و کدهای زیر را در آن قرار دهید.

کد بالا child دوم ما که درون child اول است را ایجاد می کند.
بعد از اینکار وارد layout اصلی شده در اینجا نام آن برابر با activity_main.xml است و کدهای زیر را در آن قرار دهید.

همانطور که مشاهده می کنید یک ScrollView و یک LinearLayout در کد بالا قرار گرفته است و در ادامه با استفاده از کد layout هایی را که ساختیم در این layout بالا Inflate می کنیم.
یک کلاس به نام Product.java ایجاد کرده و کدهای زیر را در آن قرار دهید.

در بالا هر بخش از کد را نام گذاری کردم همانطور که در بالاتر آنها را نام گذاری کردم. این کلاس به getter و setter نیر معروف است.
و در آخر به کد MainActivity.java میرسیم که در اینجا MainActivity.java اکتیویتی اصلی ما است .

 
در کد بالا ما سه تا آرایه داریم که به ترتیب برای Group و child اول و child دوم است این داده ها از نوع array هستند و یک داده sample برای قرار گرفتن در  Group و child اول و child هستند.
حالا ما باید هر row را Inflate کنیم تا نمایش داده شوند بعد از Inflate کردن باید آداپتور را ست کنیم یعنی داده sample آرایه را در بخش های مخصوصشان (  Group و child اول و child ) قرار دهیم . همینطور باید برای یک کلیک تعریف کنیم تا زمانی که بروی هر آیکون هر row کلیک شد لیست دوم یا child دوم و سوم به ترتیب باز شوند. برای اینکه این برنامه کمی متریال دیزاین شود کافی است یک انیمیشن در listview لود کنید و همینطور اندازه آیکون Row ها را تغییر دهید.
 
این آموزش هم به پایان رسید.
 
موفق و موید باشید.
 

مطالعه بیشتر