【发布时间】:2016-04-27 12:37:18
【问题描述】:
这是我的主要问题,经过一些研究,我没有找到解决方案,所以......我想对我的自定义对象列表进行排序。这些项目有价格,但出于某种原因,它们是字符串而不是 int。我想知道如何实现这一点,感谢您的帮助!
个人小问题,对listview和recyclerview进行排序是一样的吗?
编辑:
public class Product implements Parcelable {
private String imgUrl, titre, description, prix, nomAgence, pays, ville, type_produit, nbPieces = null;
List<String> urlImageList_thumb = new ArrayList<>();
List<String> urlImageList_full = new ArrayList<>();
private int isAdded = 0;
/* getters and setters*/
}
编辑 2:在您的帮助下,这是我的可比较代码
@Override
public int compareTo(Product otherProduct) {
String tmp = prix.replace(" €", "");
String tmp2 = otherProduct.prix.replace(" €", "");
//Integer p1 = Integer.valueOf(tmp); --> does not work
//Integer p2 = Integer.valueOf(tmp2); --> does not work
Integer p1 = Integer.parseInt(tmp); //same error
Integer p2 = Integer.parseInt(tmp2); // same error
return p1.compareTo(p2);
}
这是活动中的代码:
bouton_tri.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Collections.sort(productList);
}
});
编辑 3:
@Override
public int compareTo(Product otherProduct) {
String tmp = prix.replace(" €", "").replaceAll(" ", "");
String tmp2 = otherProduct.prix.replace(" €", "").replaceAll(" ", "");
Integer p1 = Integer.valueOf(tmp);
Integer p2 = Integer.valueOf(tmp2);
return p1.compareTo(p2);
}
我仍然有一个错误,但是当我删除“€”时,如果只有空格“5300000€”,则值为“5 300 000”。但是将两者放在一起会给我这个错误 java.lang.NumberFormatException: Invalid int: "-" ... 有什么想法吗?谢谢
【问题讨论】:
-
你试过 Collections.sort 吗?
-
分享示例数据。
-
@PoojaGaikwad 正在写入。
-
@P.Rai 添加了代码 :)
-
您要对哪个列表进行排序?请看我的回答