2016-04-12 6 views
0

Я создал систему сигнализации, которая будет использоваться опекуном для установки аварийных сигналов для пожилых людей. В этой тревоги, как я могу получить самый последний сигнал тревоги, который был установлен, чтобы быть размещены на вершине, а не просто появляться на дне каждый разТревога для пожарной базы

mListAdapter = new FirebaseListAdapter<notify>(this, notify.class, android.R.layout.two_line_list_item, mRoot) { 
     @Override 
     protected void populateView(View view, notify notify, int i) { 
      ((TextView)view.findViewById(android.R.id.text1)).setText(notify.getCourse() + "Quantity:" + notify.getQuantity() +"," + notify.getRepeat()); 
      ((TextView)view.findViewById(android.R.id.text2)).setText("Medication set to " +notify.getDate() + " at " + notify.getTime()); 
     } 
    }; listView.setAdapter(mListAdapter); 

ответ

0

Инверсия данных не является проблемой для FirebaseListAdapter решить , Вместо этого вы можете либо решить его в запросе базы данных (mRoot), либо в своем Android-приложении. Ответ: whole book worth of questions on reversing a query был дан ответ, так что я сосредоточусь на том, чтобы обратить вспять пункты в представлении здесь.

Поскольку вы с помощью ListView:

listView.setStackFromBottom(true); 

Для RecyclerView эквивалента будет:

manager.setStackFromEnd(true); 
+0

Я добавил listView.setStackFromBottom (true), но он по-прежнему не изменяет мои данные, чтобы отображать последние сверху. Почему это так? –

1

Обратите внимание, что по умолчанию дети найденные в порядке возрастания их ключей. Если в вашем случае ключи генерируются автоматически Firebase (например, с использованием функции push()), то их значения основаны на отметке времени, а ключ, сгенерированный позже, больше, чем любая ранее сгенерированная клавиша. Таким образом, последний созданный вами аварийный сигнал появляется в нижней части списка.

Чтобы отменить этот заказ, вы можете для каждого дочернего объекта сохранить значение 0 - timestamp под своим свойством под названием created_timestamp, где timestamp - это метка времени, когда объект был создан. Затем вы можете использовать функцию orderBy('created timestamp') для извлечения детей с заданным порядком.

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

  • Нет связанных вопросов^_^