دوره زبان تخصصی برای برنامه‌نویسان (هدیه ویژه ثبت‌نام در دوره‌های متخصص) (فرصت محدود ⏰)
۰ ثانیه
۰ دقیقه
۰ ساعت
۲ رحیم
Sort items in recyclerview بر اساس Alphabet
پوریا شفیعی حل شده توسط پوریا شفیعی

سلام خسته نباشید

1 من وقتی یه چیزی رو به recycler اضافه می‌کنم و بعد از اپلیکیشن خارج می‌شم و وارد می‌شم اونی که اخر از همه اضافه شده رو اخر نشون می‌ده من می‌خواستم اون فایلی رو که اخر از همه اضافه شده رو اول نشون بده 

2 چطور می‌تونیم نشون دادن فایل‌ها رو در recycler بر اساس حروف الف با بکنیم ؟؟

ممنون

سلام احترام

 

پاسخ سوال یک : برای این گزینه میتونید پارامتر ReverseLayout در متد setLayoutManager ، ریساکلر ویو را برابر true قرار دهید یا اینکه هنگام استفاده از متد add لیست آن را در ایندکس 0 ذخیره کنید.

tasks.add(0, task);

 

پاسخ سوال دو : شما میتونید روی ArrayList متد Sort رو call کنید که البته اگر برای گرفتن دیتا از دیتابیس استفاده کنید میتونید عمل Sort داده را در Query قرار دهید.

 

با آرزوی موفقیت

Hamidreza Karimi ۱۰ آذر ۱۳۹۹، ۰۴:۴۶

سلام و احترام

 

درسته وقتی شما صرفا از متد add(۰,itam)l استفاده کنید در همان لحظه لیست شما مرتب شده ولی وقتی از اپلیکیشن بیرون بروید و دوباره وارد شوید آیتم افزوده شده به انتهای صفحه میروند

تا جایی که اطلاع دارم هر دو سوال شما در پروژه فروشگاهی بررسی خواهد شد (sort کدن ایتم ها) .

در اینجا چون بحث دیتابیس نیست نمیتوانیم در مدل خود رفته و بر روی Query خود عمل sort بر اساس (ای دی یا نام خانوادگی و..) طبق چیزی که در جواب سوال‌های پیشین شما گفته شد انجام دهیم(یاداوری با استفاده از  ORDER)

پس من برای شما یک اموزش ۴ دقیقه ای کوتاه قرار میدهم که به راحتی این موضوع sort سازی (چه بر اساس تاریخ چه بر اساس الفبا و..) رو فرا بگیرید. 

https://www.youtube.com/watch?v=aMw۴d۷uWNW۸&t=۱۶۵s

که پس از دیدن این اموزش شما میتوانید هنگام دریافت فایل یعنی :

File[] files = currentFolder.listFiles();
fileAdapter = new FileAdapter(Arrays.asList(files), this);

لیستی از ایتم‌های مرتب شده بر اساس date(یا الفبا) تهیه کنید و به عنوان ارگومان به FileAdapter پاس دهید.

بدین شکل هر زمان که اپلیکیشن اجرا شود ایتم‌ها طبق چیزی که شما مشخص کردید نمایش داده میشوند.

به عبارتی طبق اموزشی که خدمت شما ارسال کردم :

در استک اور فلو سوال مشابه پرسش شما پرسیده شده هست (روش جاوا 7 و  روش جاوا 8 ):

https://stackoverflow.com/questions/۲۰۳۰۳۰/best-way-to-list-files-in-java-sorted-by-date-modified-

مرتب سازی بر اساس date :

(موارد زیر صرفا مثال هستند پس کد‌های مربوطه رو طبق اموزش بسته به سناریو تان خودتون بنویسید)

final File[] sortedByDate = folder.listFiles();
if (sortedByDate != null && sortedByDate.length > 1) {
        Arrays.sort(sortedByDate, new Comparator<File>() {
             @Override
             public int compare(File object1, File object2) {
                return (int) ((object1.lastModified() > object2.lastModified()) ? object1.lastModified(): object2.lastModified());
             }
    });
}

یا

مرتب سازی بر اساس نام‌:

final File[] sortedFileName = images.listFiles()
if (sortedFileName != null && sortedFileName.length > 1) {
        Arrays.sort(sortedFileName, new Comparator<File>() {
             @Override
             public int compare(File object1, File object2) {
                return object1.getName().compareTo(object2.getName());
             }
    });
}
بهترین پاسخ
پوریا شفیعی ۱۰ آذر ۱۳۹۹، ۰۸:۲۴