【问题标题】:Reverse ParseQueryAdapter ItemList反向 ParseQueryAdapter 项列表
【发布时间】:2016-02-28 02:47:42
【问题描述】:

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

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

现在我开始考虑将我的查询orderByDescending("updatedAt") 重新排序并修改ParseQueryAdaptergetItem 方法,以便对项目进行反向排序。 我尝试将ParseQueryAdaptergetItem 子类化为:

@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


    【解决方案1】:

    使用 ParseQueryAdapter 实现您真正想要的东西对您来说太麻烦了。我建议从 Parse 中获取对象并实现自定义 BaseAdapter 以插入到您的 ListView。

    【讨论】:

    • 感谢您的建议。我将我的适配器切换到 BaseAdapter,一切正常。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-25
    • 2011-11-12
    • 1970-01-01
    • 2017-11-16
    相关资源
    最近更新 更多