如何排序Android Listview / HashMap

时间:2014-04-09 11:50:36

标签: android listview arraylist hashmap linkedhashmap

我的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);
    ...
}

3 个答案:

答案 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进行排序

Sorting ArrayList

答案 2 :(得分:0)

您可以使用Collections.sort()方法对ArrayList

进行排序