Usar o Compare com dados vindos do Firebase Real Datetime

1 resposta
java
laelsonc

BRIGA FEIA
Estou tentando ordenar um List de Objetos. A classe funciona bem com os dados que pego de um JSON. Mas um dos campos eu preencho do Firebase Real Datetime, após pesquisa pelo ID. Justamente esse campo se comporta de maneira totalmente inesperada e JUSTAMENTE o que preciso para ordenar por ele.
A função Compare não ordena por ele, pois apesar de exibir direito no RecyclerView algumas linhas retornam null e trava o Compare. Obs.: Com qualquer outro campo eu ordeno perfeitamente, somente o valor que vem do Firebase que dá problema.
Vou jogar abaixo mais ou menos a encrenca, espero que dê pra entender:

// PARTE 1 --------------------
List dadosList = new ArrayList<>();;

for (int i = 0; i< jsonArray.length(); i++){MeuObjeto dados = new MeuObjeto ();

dados.setNome(jsonObject.getString(“nome”));

// Aqui eu pesquiso no FIREBASEfor (DataSnapshot childSnapshot : dataSnapshot.getChildren()) {

localizacao = childSnapshot.getValue(LocationData.class);

}

dados.setLocalizacao(localizacao.local);

<strong>// PARTE 2 ----------------------------</strong>

dadosList.add(dados);

Collections.sort(dadosList,new ComparadorDistancia());

return dadosList;
}

// CLASSE PARA COMPARAR
static class ComparadorDistancia implements Comparator {

@Override
public int compare(MeuObjeto o1, MeuObjeto o2) {

if (Integer.parseInt(o1.getLocalizacao()) < Integer.parseInt(o2.getLocalizacao())) {
return -1;

} else if (Integer.parseInt(o1.getLocalizacao()) > Integer.parseInt(o2.getLocalizacao())) {

return 1;

}

return 0;
}

1 Resposta

javaflex

Nao seria mais simples e eficiente trazer o resultado ordenado do firebase?

https://firebase.google.com/docs/database/android/lists-of-data?hl=pt-br

Criado 24 de dezembro de 2018
Ultima resposta 24 de dez. de 2018
Respostas 1
Participantes 2