ListView通过适配器得到ArrayList或者数组作为数据源,我们可以对ListView的数据源按照某项进行排序。
(1)对文本内容进行排序。
Collections.sort(mArrayList, new Comparator<Map<String, Object>>() { @Override public int compare(Map<String, Object> object1, Map<String, Object> object2) { int i = object2.get("LEVEL").toString().compareTo(object1.get("LEVEL").toString()); if (i == 0) { object1.get("TITLE").toString().compareTo(object2.get("TITLE").toString()); } return i; } });
对String使用compareTo方法。
(2)对数据行数据进行排序:
Collections.sort(list, new Comparator<HashMap<String, String>>() { @Override public int compare(HashMap<String, String> map1, HashMap<String, String> map2){ int i = 0; if(Integer.parseInt(map1.get("food_day")) > Integer.parseInt(map2.get("food_day").toString())){ i = -1; } else if(Integer.parseInt(map1.get("food_day")) == Integer.parseInt(map2.get("food_day").toString())){ i = 0; } else{ i = 1; } return i; }});
直接对int型数据进行比较大小。