Ho un recyclerView pieno di CardViews che hanno 2 parametri (entrambi sono stringhe), uno di questi è un titolo, mi piacerebbe avere un pulsante per ordinarli alfabeticamente in base alla tittle.Come ordinare le stringhe su Android RecyclerView?
poiché non ha troppi elementi abbiamo deciso di utilizzare l'inserzione che è O (n^2) e questo è il mio applicazione:
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]);
}
}
Si prende un array di stringhe e ordini .
E questo è il metodo della mia RecyclerView che prende i parametri:
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"));
}
Penso che ho bisogno di passare in qualche modo quel primo paramater a un array di stringhe e poi ordinarlo.
L'idea è di avere il metodo di ordinamento in un pulsante nella stessa attività in cui è visualizzato il RecyclerView e quando premuto dovrebbe ordinarli senza passare ad un'altra attività.
Sono un po 'perso qui.
Nel riprendere quello che sto cercando di fare è avere un buttom che ordini gli elementi (che in questo caso sono CardViews) di una RecyclerView in ordine alfabetico in base al parametro "titolo".
La mia idea è giusta, hai un altro modo per farlo, o cosa dovrei fare per realizzare questo?
Grazie mille.
Il tuo codice ha funzionato perfettamente per me, ma dove devo applicare il parametro 'notifyDataSetChanged()' nel mio codice? –
Ho risolto il problema applicando 'adapter.notifyDataSetChanged()' dopo il mio ordinamento. Grazie :) –
@SamarthKejriwal Ah sì, non ho precisato l'origine del metodo. Aggiungo da quale classe appartiene il metodo;) – xiaomi