【问题标题】:How to sort Android Listview / HashMap如何对 Android Listview / HashMap 进行排序
【发布时间】:2014-05-22 14:25:51
【问题描述】:

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

【问题讨论】:

标签: android listview arraylist hashmap linkedhashmap


【解决方案1】:

你可以尝试实现一个比较器 在你的课堂上

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);

【讨论】:

    【解决方案2】:

    您应该对列表视图进行排序吗?

    在适配器中设置项目列表,如

    ArrayList 列表 = 新的 ArrayList();

    // 将值添加到列表中

    使用 Compare 可以更轻松地对数组列表进行排序

    Sorting ArrayList

    【讨论】:

      【解决方案3】:

      您可以使用Collections.sort() 方法对您的 ArrayList 进行排序

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-01-30
        • 2011-09-20
        • 2015-03-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-16
        • 1970-01-01
        相关资源
        最近更新 更多