【发布时间】:2016-02-28 02:47:42
【问题描述】:
我是 Parse 和 Android 开发方面的新手,目前正在开发由 ParseQueryAdapter 在 Android 上提供支持的聊天功能。问题是我想要像任何其他聊天应用一样的用户体验:底部的最新消息和顶部的“加载更多”按钮,我无法得到我想要的结果。
我在查询中尝试了orderByAscending("updatedAt"),结果似乎正确:项目列表从旧到新(从上到下)排序。当达到最大项目(25 个项目)并出现“加载更多”按钮时会出现问题。 '加载更多'按钮放在ListView 的底部,顶部的消息仍然是发送的第一条消息。
现在我开始考虑将我的查询orderByDescending("updatedAt") 重新排序并修改ParseQueryAdapter 的getItem 方法,以便对项目进行反向排序。
我尝试将ParseQueryAdapter 的getItem 子类化为:
@Override
public ParseObject getItem(int position) {
return super.getItem(getCount() - position - 1);
}
我从this post 得到它,因为ParseQueryAdapter 是基于BaseAdapter。
遗憾的是,当在我的 ParseQueryAdapter 子类上获取对象的 getParseUser 时,它会返回 NullPointerException,如下所示:
public class ChatContentCustomAdapter extends ParseQueryAdapter<ParseObject> {
public ChatContentCustomAdapter(Context context, final String roomId){ ... }
public View getItemView(final ParseObject object, View v, ViewGroup parent) {
if (object.getParseUser("sender") == cUser) {
//populating layout
}
}
}
我应该怎么做才能克服这个问题?
【问题讨论】:
标签: android listview parse-platform chat