我的listview / hashmap需要一些帮助。
我想按int值(TAG_EPOCH)对listView进行排序。
在我搜索互联网时,我发现我可能需要一个LinkedHashMap或一个TreeSet,但我不明白如何将它们与我现有的代码一起使用。
以下是我的代码示例:
protected void onCreate(Bundle savedInstanceState) {
...
contactList = new ArrayList<HashMap<String, String>>();
...
}
static ArrayList<HashMap<String, String>> contactList;
private static final String TAG_EPOCH = "dateEpoch";
private class GetContacts extends AsyncTask<Void, Void, Void> {
...
@Override
protected void onPostExecute(Void result) {
ListView dummyView = (ListView) findViewById(R.id.list);
mAdapter = new MyCustomAdapter();
for (int i = 1; i < contactList.size(); i++) {
HashMap<String, String> c = contactList.get(i);
mAdapter.addItem(TAG_EPOCH);
}
dummyView.setAdapter(mAdapter);
...
}
答案 0 :(得分:3)
您可以尝试实施比较器 在你的班级
class Contact implements Comparable<Contact>
然后添加:
public static final Comparator<Contact> INTEGER_COMPARATOR = new Comparator<Contact>() {
// Overriding to sort on your integer
public int compare(Contact c1, Contact c2) {
return c1.integer - c1.integer;
}
};
然后使用以下方式对其进行排序:
Collections.sort(list, Contact.INTEGER_COMPARATOR);
答案 1 :(得分:0)
您应该对列表视图进行排序吗?
在适配器中设置项目列表,如
ArrayList list = new ArrayList();
//将值添加到列表
使用比较可以更轻松地对arraylist进行排序答案 2 :(得分:0)
您可以使用Collections.sort()方法对ArrayList
进行排序