Tenho um conjunto dinâmico de volumes cujo o armazenamento é no formato "350 ml". Quando preciso pegar apenas o número eu faço um replace(" ml", "").
O que eu não entendo é a ordem maluca que os valores assumem, eu até agora não entendi a lógica.
O fato é que eu já tentei Collections.sort(lista) e não deu certo. Após pesquisar um pouco eu implementei um Comparator para ser usado no sort mas mesmo assim a ordem continua uma bagunça.
-- O que eu não entendo é a ordem maluca que os valores assumem, eu até agora não entendi a lógica.
O fato é que eu já tentei Collections.sort(lista) e não deu certo. Após pesquisar um pouco eu implementei um Comparator para ser usado no sort mas mesmo assim a ordem continua uma bagunça.
public static int insert(Context ctx, String value) {
ArrayList<String> lista = getVolumes(ctx);
if (lista.contains(value)) { return 0; }
lista.add(value);
Collections.sort(lista, new MyComparator());
...
}public static class MyComparator implements Comparator<String> {
@Override public int compare(String string1, String string2) {
String substring1 = string1.replace(" ml", ""); String substring2 = string2.replace(" ml", "");
return Integer.valueOf(substring1) - Integer.valueOf(substring2); } }You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.






0 comentários:
Postar um comentário