如何在Android RecyclerView上对string进行sorting?

我有一个recyclerView充满CardViews有2个参数(他们都是string),其中之一是一个标题,我想有一个button,按字母顺序sorting他们的基础上。

因为它没有太多的元素,我决定使用插入sorting是o(n ^ 2),这是我的实现:

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]); } } 

它需要一串string并命令它们。

这是我的RecyclerView采取参数的方法:

 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")); } 

我认为我需要将第一个parameter passing给一个String Array然后对其进行sorting。

这个想法是在一个button中的sorting方法在RecyclerView显示在同一个活动,按下它将不得不sorting,而不去另一个活动。

我有点迷路了

在简历中,我试图做的是有一个按顺序排列基于“标题”参数的字母顺序的元素(在这种情况下是CardViews)的button。

我的想法是对的吗,还有其他方法可以做到这一点,或者我应该怎么做才能做到这一点?

太感谢了。

sorting列表的最简单方法是使用java.util.Collections

 Collections.sort(categories, new Comparator<Categories>() { @Override public int compare(Categories lhs, Categories rhs) { return lhs.title.compareTo(rhs.title); } }); 

这将按字符比较标题字符。 并将你的列表从一个到Zsorting。

修改之后不要忘记数据已经通过notifyDataSetChanged() (从你的RecyclerView.Adapter )改变了。