我对来自服务器的消息有这样的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
}]
}
我把它放到listview中,我有这样的命令:
但我想得到下一个订单:
所以这意味着最新的消息应该是从下到上。可能我应该从底部构建listview?但是怎么样? 我该怎么做才能做到这一点? 抱歉我的英语:)
答案 0 :(得分:0)
设置反向顺序
ArrayList<Your_Model> mList = new ArrayList<Your_Model>();
从 JSON 中 mList 设置数据:
如果您想在逆序上获得列表,请将以下代码放入。
Collections.reverse(mList);
希望它会对你有所帮助。
答案 1 :(得分:0)
一旦你在JsonArray中获得了“items”数组,那么你应该获得像
这样的数据 for(int i=array.length()-1; i<=0; i--){
// get your messages from "items" array.
}
答案 2 :(得分:0)
我假设您要根据回复中的
date
字段对邮件列表进行排序。
从此JSON响应中创建ArrayList
MyClass
,例如mylist
并创建一个比较器类,如下所示:
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响应的模型类。
将Comparator
课程与ArrayList
一起使用,如下所示:
Collections.sort(mylist,new MyComparator());
我希望这会对你有所帮助。