2016-04-12 7 views
0

私は、介護者が高齢者のための警報を設定するために使用する警報システムを作成しました。 FirebaseListAdapterを解決するために、このアラームでは、どのように私だけではなく、データを反転ファイヤーベースの警報

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

下部に毎回現れるのは、トップの上に置かれるように設定されている最新のアラームを入手できますかは問題ではありません。代わりに、データベースクエリ(mRoot)またはAndroidビューで解決できます。 A whole book worth of questions on reversing a queryは過去に回答されていますので、ここでは項目を逆にすることに焦点を当てます。

あなたはListView使用しているので:RecyclerView同等の場合

listView.setStackFromBottom(true); 

は次のようになります。デフォルトの子どもたちが自分のキーの昇順に検索されたことを

manager.setStackFromEnd(true); 
+0

私はlistView.setStackFromBottom(true)を追加しましたが、最新のものを表示するためにデータを再配置しません。どうしてこんなことに? –

1

注意してください。あなたのケースでキーがFirebaseによって自動的に生成された場合(例えば、push()関数を使用して)、それらの値はタイムスタンプに基づいており、後で生成されるキーは以前に生成されたキーよりも大きくなります。したがって、最後に作成したアラームがリストの一番下に表示されます。

この順序を逆にするには、各子オブジェクトに0 - timestampの値をcreated_timestampというプロパティで格納することができます。ここで、timestampはオブジェクトの作成時のタイムスタンプです。次に、関数orderBy('created timestamp')を使用して、意図した順序で子を取り出すことができます。

関連する問題