我有一個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