如何更改来自 JSON 的消息的顺序?

How to change the order of the messages from JSON?

我对来自服务器的消息有这样的 JSON 响应:

response: {
count: 74246,
items: [{
  id: 343194,
  body: 'Message 3',
  user_id: 123,
  from_id: 123,
  date: 1436513626,
  read_state: 1,
  out: 0
}, {
  id: 343190,
  body: 'Message 2',
  user_id: 123,
  from_id: 321,
  date: 1436513502,
  read_state: 1,
  out: 1
}, {
  id: 343187,
  body: 'Message 1',
  user_id: 123,
  from_id: 123,
  date: 1436513198,
  read_state: 1,
  out: 0
}]
}

我把它放到列表视图中,我有这样的顺序:

但是我想得到下一个订单:

也就是说最新的消息应该是从下到上的。也许我应该从底部构建列表视图?但是怎么办? 我应该怎么做才能实现这一目标? 对不起我的英语:)

ArrayList 上设置倒序:

ArrayList<Your_Model> mList = new ArrayList<Your_Model>();

mList中设置数据来自JSON:

每当你想在逆序上获得列表时,输入下面的代码。

Collections.reverse(mList);

希望对您有所帮助。

一旦你在 JsonArray 中得到你的 "items" 数组,那么你应该得到这样的数据,

     for(int i=array.length()-1; i<=0; i--){
         // get your messages from "items" array.  
      }

I'm assuming that you want to sort your list of messages based on date field in the response.

从这个 JSON 响应创建一个 MyClassArrayList,说 mylist 并创建一个比较器 class,如下所示:

public class MyComparator implements Comparator<MyClass> {
    @Override
    public int compare(MyClass lhs, MyClass rhs) {
        if (ldate.getDate() > rdate.getDate()) {
            return 1;
        } else if (ldate.getDate() < rdate.getDate()) {
            return -1;
        }
        return 0;
    }
}

MyClass 是上述 JSON 响应的模型 class。

使用这个 Comparator class 和你 ArrayList 如下:

Collections.sort(mylist,new MyComparator());

希望对您有所帮助。