2017-07-12 4 views
0

カウントは私のFirebaseデータです:Firebaseクエリと同じキーとここで合計するには、Android

enter image description here

私はハッシュマップとlistDataプロパティを設定している同じストアを照会したい、とAndroid、 に合計数量をカウントし、リストビュー

final Firebase myFirebaseRef = new Firebase("******"); 

    myFirebaseRef.addValueEventListener(new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot snapshot) 
     { 
      lvAll.setAdapter(null); 
      int size = (int) snapshot.getChildrenCount(); 
      HashMap<String, Object> myHasMap = new HashMap<String, Object>(); 
      listData.clear(); 
      myHasMap.clear(); 
      myHasMap.put("Name",coffeename[0]); 
      myHasMap.put("Count","Total is "+size); 
      listData.add(myHasMap); 
      listItemAdapter.notifyDataSetChanged(); 
      lvAll.setAdapter(listItemAdapter); 
     } 
     @Override 
     public void onCancelled(FirebaseError firebaseError) { 
     } 
    }); 

これはJSONである:

{ "5533":{ "coffeeNo": "美式咖啡"、 "日付":20170602、 "店舗": "中正店"、 "スタイル": "小熱" }、 "1231236"。 { "coffeeNo": "美式咖啡"、 "日付":20170604、 "店舗" "桃銘店"、 "スタイル": "中冰" }、 "計123q":{ 「coffeeNo ": "美式咖啡"、 "日付":20170603、 "店舗": "中山店"、 "スタイル": "中熱" }、 "qwe223":{ "coffeeNo":"式咖啡」、 "日付":20170607、 "店舗": "中山店"、 "スタイル": "中熱" }たとえば }

:私は同じキーを照会したいです店内の番号を得ることができます "中山店"は2店舗で "中正店"は1店舗で "桃銘店"は1ですか?

あなたが coffeeNoに基づいてスナップショットと集計でアイテムをループする必要があります
+0

あなたの質問でJSONの木の絵を用意しました。実際のJSONをテキストとして置き換えてください。このテキストは[Firebaseデータベースコンソール](https://console.firebase.google.com/project/_/database/data/)の[Export JSON]リンクをクリックすることで簡単に取得できます。 。 JSONをテキストとして検索可能にすることで、実際のデータを使ってテストしたり、答えに使用したりすることができます。一般的には、これは良いことです。 –

+0

それはどういう意味ですか? JSONツリー? –

答えて

0

for (DataSnapshot child: snapshot.getChildren()) { 
    String coffeeNo = child.child("coffeeNo").getValue(String.class); 
    int count = 1; 
    if (myHashMap.containsKey(coffeeNo)) { 
     count = (int) myHashMap.get(coffeeNo) + 1; 
    } 
    myHashMap.put(coffeeNo, count); 
} 
+0

それは動作しません... すべての数は1 ... –

+0

私はちょうど(打ち間違いを修正した後)コードを実行し、ハッシュマップを印刷して '{美式咖啡= 4}'を得ました。あなたはFirebase SDKの非常に古いバージョン(2.x)を使用しているようですが、この動作は私が知る限り何年も変わっていません。 –

関連する問題