我已经创建了一个警报系统,供照顾者使用,为老人设置警报。在此闹钟中,如何获取已设置为顶部的最新闹钟,而不是每次都出现在底部
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);发布于 2016-04-12 21:48:45
请注意,默认情况下,会按键的升序检索子对象。如果在您的示例中,密钥是由Firebase自动生成的(例如,使用push()函数),则它们的值基于时间戳,并且稍后生成的密钥大于之前生成的任何密钥。因此,您创建的最后一个警报会出现在列表的底部。
为了颠倒这个顺序,您可以为每个子对象在其名为created_timestamp的属性下存储值0 - timestamp,其中timestamp是创建对象时的时间戳。然后,您可以使用函数orderBy('created timestamp')来检索具有预期顺序的子项。
发布于 2016-04-12 21:46:10
反转数据不是FirebaseListAdapter要解决的问题。相反,您可以在数据库查询(mRoot)或Android视图中解决它。whole book worth of questions on reversing a query在过去已经回答过了,所以我将重点放在这里颠倒视图中的项。
由于您使用的是ListView
listView.setStackFromBottom(true);对于RecyclerView,等效项为:
manager.setStackFromEnd(true);https://stackoverflow.com/questions/36568298
复制相似问题