در این سوال از شما میخواهیم صف آهنگهای درحال پخش یک موزیک پلیر را پیادهسازی کنید. فایل پایه را از [اینجا](https://blog.quera.ir/wp-content/uploads/2018/10/playlist-contestant.zip) دانلود کنید.
شمای کلی پروژه نهایی بصورت زیر است:
![ ](https://blog.quera.ir/wp-content/uploads/2018/09/2018-09-28_19-19-03.gif)
# **تعریف پروژه**:
شمای کلی پروژه نهایی مانند تصاویر بالا است و لیست کارهای شما برای تکمیل این پروژه به شرح زیر است:
+ نمایش لیست آهنگهای در صف پخش
+ امکان ایجاد تغییر در ترتیب آهنگها
+ امکان حذف آهنگ از لیست پخش
# **جزئیات پیادهسازی وظایف**
**نمایش لیست آهنگهای در صف پخش:** برای سادهتر شدن این بخش، کافیست اطلاعات آهنگهای موجود در لیست پخش را از طریق فراخوانی تابع ``getMusicList`` دریافت کنید. این تابع، عضو ``static`` کلاس ``JudgeUtil`` است.
**امکان ایجاد تغییر در ترتیب آهنگها:** با لمس آیکون سمت راست هر عضو لیست که بصورت دو خط افقی نمایش دادهمیشود امکان تغییر مکان آن عنصر در لیست از طریق کشیدن آن به محل دلخواه (``drag`` کردن) وجود دارد. دقت کنید برای این کار نیازی به لمس طولانی آیکون نیست و بهمحض لمس آیکون، امکان تغییر مکان آن وجود دارد. همچنین دقت کنید این امکان فقط برای آیکون گفتهشده فعال باشد تا امکان ``scroll`` کردن لیست آهنگها ازبین نرود.
**امکان حذف آهنگ از لیست پخش:** با کشیدن هریک از آیتمهای لیست به طرف راست یا چپ، آن آیتم باید از لیست حذف شود.
# نکات حیاتی:
+ برای جلوگیری از بروز خطای حجم فایل ارسالی، قبل از ساخت و ارسال فایل `zip` دقت کنید که پوشههای `build` در این فایل **وجود نداشته باشند**.
+ به هیچوجه کدهای **موجود** در هیچیک از فایلهای پروژه را پاک نکنید و یا تغییر ندهید.
+ در هیچ قسمتی از پروژه مجاز به استفاده از کتابخانههای آماده نیستید و پیادهسازیهای خواسته شده را باید شخصا انجام دهید.
+ از اعمال تغییر در فایل ``JudgeUtil`` خودداری کنید.
ساختار بخشی از فایل پایه بصورت زیر است. میتوانید فایلهایی به پوشه `java` (یا زیر پوشههای آن) اضافه کنید. همچنین مجازید به فایلهایی که با علامت (---->) مشخص شدهاند کدهای خودتان را اضافه کنید (اما مجاز به تغییر یا حذف کدهای موجود نیستید). درنهایت محتویات پوشه `app` را در قالب یک فایل فشرده ارسال کنید.
```
app
│
└───src
└───main
│ AndroidManifest.xml
│
├───java
│ └───com
│ └───quera
│ └───android
│ └───playlist
│ ItemModel.java (<-----)
│ JudgeUtil.java (<-----)
│ MainActivity.java (<-----)
│
└───res
├───drawable
│
├───drawable-hdpi
│
├───drawable-mdpi
│
├───drawable-v24
│
├───drawable-xhdpi
│
├───drawable-xxhdpi
│
├───layout
│ activity_main.xml
│ music_item.xml
│
├───mipmap-hdpi
├───mipmap-mdpi
├───mipmap-xhdpi
├───mipmap-xxhdpi
├───mipmap-xxxhdpi
└───values
colors.xml
strings.xml
styles.xml
```
ارسال پاسخ برای این سؤال
در حال حاضر شما دسترسی ندارید.