对对象内的项目进行排序并加载到列表视图中

时间:2015-05-11 09:34:14

标签: android sorting android-listview

我试图按升序将数据集加载到列表中。我有DistanceObject个对象及其如下所示,

            DistanceObject mObject = new DistanceObject();

            mObject.setOutletname(object.getString("LocationName"));
            mObject.setAddress(object.getString("LocationAddress"));
            mObject.setDistance(strdistance);
            mListObjects.add(mObject);

将数据加载到listview

我可以使用下面显示的代码并将数据加载到listview而不对列表进行排序,

adapter = new CustomListOutlets(ActivityListOutlets.this,
                    mListObjects);
            lv.setAdapter(adapter);

我的问题是我要对strdistance进行排序并将数据加载到ListView。我可以使用strdistanceCollections.sort()进行排序,但对strdistance进行排序我要对其LocationNameLocationAddress进行排序。

任何帮助都将得到赞赏,以实现这一任务,在此先感谢。

更新

final List<DistanceObject> mListObjects = new ArrayList<DistanceObject>();
DistanceObject mObject = new DistanceObject();

                mObject.setOutletname(object.getString("LocationName"));
                mObject.setAddress(object.getString("LocationAddress"));
                mObject.setDistance(strdistance);

                Collections.sort(mListObjects, new Comparator<DistanceObject>() {
                    public int compare(DistanceObject s1, DistanceObject s2) {
                        if (Integer.parseInt(s1.getDistance()) < Integer.parseInt(s2.getDistance()))
                            return 1;
                        if (Integer.parseInt(s1.getDistance()) > Integer.parseInt(s2.getDistance()))
                            return -1;
                        else
                            return 0;
                    }
                });

            }

            lv = (ListView) findViewById(R.id.list_outlets);
            lv.setTextFilterEnabled(true);
            adapter = new CustomListOutlets(ActivityListOutlets.this,
                    mListObjects);
            lv.setAdapter(adapter);

1 个答案:

答案 0 :(得分:0)

如果您想对某些List进行排序,可以使用Collections.sort() 使用my example here