【问题标题】:Arrange the array depending on the order android?根据android的顺序排列数组?
【发布时间】:2014-01-20 09:38:05
【问题描述】:

我有一个网络服务,当我调用网络服务时我得到了这个响应。

[
    {
        "ProjectID": 1,
        "SLNO": 1,
        "ID": 1,
        "Type": "Text",
        "Name": "First Name",
        "**Order**": 1,
        "Flag": "F"
    },
    {
        "ProjectID": 1,
        "SLNO": 3,
        "ID": 2,
        "Type": "Text",
        "Name": "Company",
        "**Order**": 5,
        "Flag": "F"
    },
    {
        "ProjectID": 1,
        "SLNO": 4,
        "ID": 4,
        "Type": "Text",
        "Name": "Personal Email",
        "**Order**": 3,
        "Flag": "F"
    },
    {
        "ProjectID": 1,
        "SLNO": 2,
        "ID": 8,
        "Type": "Text",
        "Name": "Last Name",
        "**Order**": 2,
        "Flag": "F"
    }
]

现在我想根据我在这个数组中的顺序对这个完整的数组进行排序?我怎样才能做到这一点?

【问题讨论】:

  • 我已经解析了 json 并得到了 Name 和 Order 的值。
  • 你可以看看这个链接stackoverflow.com/questions/12901742/…
  • 如果您使用自己的 API,则尝试使用 OREDER BY 查询对数组服务器端进行排序,如果没有,则在 Android 端使用数组排序功能进行排序...
  • 你能解释一下我如何在android端做到这一点?

标签: android arrays sorting


【解决方案1】:
array = JSONUtil.sort(array, new Comparator(){
               public int compare(Object a, Object b){
                  JSONObject    ja = (JSONObject)a;
                  JSONObject    jb = (JSONObject)b;
                  return Integer.valueOf(ja.getString("**Order**")).compareTo(Integer.valueOf(jb.getString("**Order**")));
               }
            });

【讨论】:

  • object1 和 object2 下会有什么?
【解决方案2】:

首先,将这些数据添加到 ArrayList 或 HashMap 等列表中。然后使用以下代码按顺序对列表数据进行排序。

class HashMapComparator implements Comparator<HashMap<String, String>> {
        private final String key;

        public HashMapComparator(String key) {
            this.key = key;
        }

        @Override
        public int compare(HashMap<String, String> lhs,
                HashMap<String, String> rhs) {
            String firstValue = lhs.get(key);
            String secondValue = rhs.get(key);
            return firstValue.compareTo(secondValue);
        }
    }

并将其称为:

 Collections.sort(yourlistDTO, new HashMapComparator("order"));

【讨论】:

  • 它向我展示了 Collections.sort() 方法的类转换异常
  • 你传递了什么参数?
  • 我已经在arraylist中添加了json数组。然后调用这个函数。
  • JSONArray jsonArray;尝试 { jsonArray= new JSONArray(result); // Log.e("数组是", jsonArray.toString()); ArrayList listdata = new ArrayList(); for (int i=0;i
  • 这是错误的方式,通过这种方式,您将整个 jason 字符串保存在 arrayList 元素中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-10-31
  • 2020-04-25
  • 1970-01-01
  • 1970-01-01
  • 2013-11-10
  • 2023-03-16
  • 2013-12-24
相关资源
最近更新 更多