如何更改来自 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
}]
}
我把它放到列表视图中,我有这样的顺序:
- 消息 3
- 消息 2
- 消息 1
但是我想得到下一个订单:
- 消息 1
- 消息 2
- 消息 3
也就是说最新的消息应该是从下到上的。也许我应该从底部构建列表视图?但是怎么办?
我应该怎么做才能实现这一目标?
对不起我的英语:)
在 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 响应创建一个 MyClass
的 ArrayList
,说 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());
希望对您有所帮助。
我对来自服务器的消息有这样的 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
}]
}
我把它放到列表视图中,我有这样的顺序:
- 消息 3
- 消息 2
- 消息 1
但是我想得到下一个订单:
- 消息 1
- 消息 2
- 消息 3
也就是说最新的消息应该是从下到上的。也许我应该从底部构建列表视图?但是怎么办? 我应该怎么做才能实现这一目标? 对不起我的英语:)
在 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 响应创建一个 MyClass
的 ArrayList
,说 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());
希望对您有所帮助。