2016-04-12 24 views
0

Yaşlılar için alarm ayarlamak için bakım veren tarafından kullanılmak üzere bir alarm sistemi oluşturdum. Bu alarmın, nasıl ben sadece veri Tersini altındaki her seferindeFirebase alarmı

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); 

cevap

0

görünen yerine, üstüne yerleştirilen olarak ayarlandı son alarm alabilirim FirebaseListAdapter çözmek için bir sorun değildir . Bunun yerine, onu veritabanı sorgunuzda (mRoot) veya Android görünümünüzde çözebilirsiniz. Geçmişte bir whole book worth of questions on reversing a query yanıtı verildi. Bu nedenle, görünümdeki öğeleri tersine çevirmeye odaklanacağım. Bir RecyclerView için

listView.setStackFromBottom(true); 

eşdeğer olacaktır:

Bir ListView kullandığınız yana varsayılan olarak çocukların tuşlarının artan sırada alınır o

manager.setStackFromEnd(true); 
+0

Ben listView.setStackFromBottom (true) ekledim, ancak yine de en güncel olanı görüntülemek için verilerimi yeniden düzenlemiyor. Neden böyle? –

1

Bildirimi. Durum anahtarlarınız Firebase tarafından otomatik olarak oluşturulmuşsa (örneğin push() işlevini kullanarak), değerleri zaman damgasını temel alır ve daha sonra oluşturulan bir anahtar daha önce oluşturulan herhangi bir anahtardan daha büyüktür. Böylece oluşturduğunuz son alarm listenin en altında görünür. timestamp nesne oluşturulduğu zaman damgası olduğu bu sırayı tersine amacıyla

, her alt nesne mağaza için mallarının altındaki değer 0 - timestamp, created_timestamp denilen olabilir. Ardından, istenen siparişe sahip çocukları almak için orderBy('created timestamp') işlevini kullanabilirsiniz.