我有一个recyclerView充满CardViews有2 paramteres(他们都是字符串),其中之一是一个标题,我想有一个按钮来按字母顺序排序他们基于tittle。如何对Android RecyclerView上的字符串进行排序?
,因为它没有太多的元素,我决定使用排序插入它是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]);
}
}
这需要字符串和预定他们的数组。
这是我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"));
}
我认为我需要以某种方式,首先paramater传递给一个字符串数组,然后排序。
这个想法是在显示RecyclerView的同一Activity中的按钮中存在排序方法,并且在按下它时必须对它们进行排序而不必去另一个Activity。
我有点不知所措。
简而言之,我想要做的是有一个按照字母顺序排列基于“标题”参数的RecyclerView的元素(在本例中是CardViews)的按钮。
我的想法是否正确,您是否有其他方式来做到这一点,或者我应该怎么做才能做到这一点?
非常感谢。
你的代码对我来说工作完美,但我应该在哪里应用我的代码中的'notifyDataSetChanged()'? –
我在排序后应用'adapter.notifyDataSetChanged()'解决了这个问题。谢谢:) –
@SamarthKejriwal啊是的,我没有精确的方法来源。我从该方法所属的类中添加;) – xiaomi