2016-02-28 98 views
0

我是Parse和Android开发人员的新手,目前正在开发一个由Android上的ParseQueryAdapter供电的聊天功能。问题是我需要像任何其他聊天应用程序的用户体验:底部的最新消息和顶部的“加载更多”按钮,我无法得到我想要的结果。Reverse ParseQueryAdapter ItemList

我试着orderByAscending("updatedAt")对我的查询和结果似乎是正确的:项目列表排序从旧到新(从顶部到底部)。达到最大项目(25个项目)时出现问题,并出现“加载更多”按钮。 '加载更多'按钮放在ListView的底部,最上面的消息仍然是第一条消息。

现在我开始考虑订购我的查询orderByDescending("updatedAt")并修改ParseQueryAdaptergetItem方法,因此项目将反向排序。 我试图子类ParseQueryAdaptergetItem到:

@Override 
public ParseObject getItem(int position) { 
    return super.getItem(getCount() - position - 1); 
} 

我把它从this post因为ParseQueryAdapter是基于BaseAdapter

而可悲的是,它返回NullPointerException时,让我的ParseQueryAdapter子类,如下对象的getParseUser

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 
     } 
    } 
} 

我应该怎么做才能解决这个问题呢?

回答

1

对于使用ParseQueryAdapter来实现您真正想要的内容而言,这太麻烦了。我建议从Parse获取对象并实现一个自定义的BaseAdapter插件到你的ListView。

+0

感谢您的建议。我将适配器切换到BaseAdapter,并且一切正常。 –