2016-02-28 1 views
0

Я новичок в разработке как Parse, так и Android, и в настоящее время разрабатываю функцию чата, которая работает от ParseQueryAdapter на Android. Проблема в том, что я хочу, чтобы UX, как и любое другое приложение для чата: последнее сообщение внизу и кнопка «загрузить больше» сверху, и я не смог получить результат, который я хочу.Обратный ParseQueryAdapter ItemList

Я попробовал orderByAscending("updatedAt") по моему запросу, и результат кажется правильным: список элементов упорядочен от более старого к новому (сверху вниз). Проблема возникает при достижении максимального элемента (25 элементов) и появляется кнопка «загрузить больше». кнопка «загрузить больше» помещается в нижнюю часть ListView, а верхнее сообщение остается первым доставленным сообщением.

Теперь я начинаю думать, чтобы заказать мой запрос orderByDescending("updatedAt") назад и изменить метод ParseQueryAdaptergetItem, чтобы товары были заказаны обратным образом. Я попытался создать подкласс ParseQueryAdapter «s getItem в:

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

я получаю его от this post так ParseQueryAdapter основана на BaseAdapter.

И, к сожалению, она возвращает NullPointerException при получении объекта, getParseUser на моем ParseQueryAdapter подкласса, как показано ниже:

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, и все работает хорошо. –

Смежные вопросы