Tôi có một recyclerView đầy đủ của CardViews có 2 paramteres (Cả hai đều là Strings), một trong số đó là một tiêu đề, tôi muốn có một nút để sắp xếp chúng theo thứ tự bảng chữ cái dựa trên tittle.Cách sắp xếp Strings trên Android RecyclerView?
vì nó không có quá nhiều yếu tố tôi quyết định sử dụng sắp xếp chèn đó là o (n^2) và điều này là thực hiện của tôi:
public void ISortDes(String[]strings){
int j;
String key;
int i;
for (j = 1; j < strings.length; j++)
{
key = strings[ j ];
for(i = j - 1; (i >= 0) ; i--)
{
if (key.compareTo(strings[i]) > 0){
break;
}
strings[ i+1 ] = strings[ i ];
}
strings[ i+1 ] = key;
}
for (int k = 0; k < strings.length; k++){
System.out.println(strings[k]);
}
}
Phải mất một mảng của Strings và đơn đặt hàng họ .
Và đây là phương pháp RecyclerView tôi mà sẽ đưa các thông số:
private void initializeData() {
categories = new ArrayList<>();
categories.add(new Categories("CARS", "CARS"));
categories.add(new Categories("SPORTS", "SPORTS"));
categories.add(new Categories("GAMING", "GAMING"));
categories.add(new Categories("GAMBLING", "GAMBLING"));
categories.add(new Categories("TECH", "TECH"));
categories.add(new Categories("NATURE", "NATURE"));
categories.add(new Categories("RANDOM", "RANDOM"));
categories.add(new Categories("COUSINE", "COUSINE"));
categories.add(new Categories("HISTORY", "HISTORY"));
categories.add(new Categories("MUSIC", "MUSIC"));
categories.add(new Categories("STUDIES", "STUDIES"));
}
Tôi nghĩ rằng tôi cần phải vượt qua bằng cách nào đó mà paramater đầu tiên vào một String Array và sau đó sắp xếp nó.
Ý tưởng là có phương pháp sắp xếp trong một nút trong cùng một Hoạt động nơi RecyclerView được hiển thị và khi được nhấn, nó sẽ phải sắp xếp chúng mà không cần đến Hoạt động khác.
Tôi bị lạc ở đây.
Tiếp tục những gì tôi đang cố gắng làm là để có một buttom đặt hàng các phần tử (trong trường hợp này là CardView) của RecyclerView theo thứ tự bảng chữ cái dựa trên tiêu đề "tiêu đề".
Ý tưởng của tôi là đúng, bạn có cách nào khác để làm điều này hay tôi nên làm gì để thực hiện việc này?
Cảm ơn một triệu.
Mã của bạn đã làm việc cho tôi một cách hoàn hảo nhưng tôi nên áp dụng 'notifyDataSetChanged()' trong mã của mình ở đâu? –
Tôi đã giải quyết vấn đề bằng cách áp dụng 'adapter.notifyDataSetChanged()' sau khi sắp xếp .Thanks :) –
@SamarthKejriwal Ah vâng, tôi đã không chính xác nguồn gốc của phương thức. Tôi thêm từ lớp mà phương thức thuộc về;) – xiaomi