私は、Android Studioでの作業、およびFirebaseから以下のデータを取得しています: "キー" はFirebaseデータを取得した後にHashMapをループするにはどうすればいいですか?
public void initialiseColourSet(ValueEventListener listener) {
if(this.key == null) return;
DatabaseReference mColourSetReference = FirebaseDatabase.getInstance().getReference()
.child("coloursets").child(this.key);
mColourSetReference.addListenerForSingleValueEvent(listener);
}
:
coloursets:
default:
name: "Default colour set"
description: "Default set of colours"
colours:
white:
red: 255
green: 255
blue: 255
name: "white"
black:
red: 0
green: 0
blue: 0
name: "black"
は、私はこのようにそれを取得しています「デフォルト」に設定され、「リスナー」は:
new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
ArrayList<ChartColour> colourList= new ArrayList<>();
Map<String, HashMap> objectMap = (HashMap<String, HashMap>) dataSnapshot.getValue();
// SOMETHING NEEDS TO GO HERE - SEE BELOW
}
}
ColourSetクラスha以下の(S)
String key, name, description;
ArrayList<ChartColour> colours = new ArrayList<>();
だから、私はcolourSetの名前と説明を取得して、それから「色を設定するために使用されるローカル変数colourList、に色のリストを取得するには「のObjectMap」をループにしたいです'をColourSetオブジェクトに追加します。
リスナーで正しいループを取得できません。私は多くの答えを見てきましたが、私の場合にはあてはまりません。
現在、私は、リスナーに次き:
だから、new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
ArrayList<ChartColour> colourList= new ArrayList<>();
Map<String, HashMap> objectMap = (HashMap<String, HashMap>) dataSnapshot.getValue();
for (Map.Entry<String, HashMap> entry : objectMap.entrySet()) {
switch (entry.getKey()) {
case "name":
mColourSet.setName(String.valueOf(entry.getValue()));
break;
case "description":
mColourSet.setDescription(String.valueOf(entry.getValue()));
break;
case "colours":
// Need some kind of FOR LOOP here
ChartColour colour = new ChartColour();
/*
colour.setKey(??);
colour.setName(??);
colour.setRed(??);
... etc ... */
colourList.add(colour);
// END OF FOR LOOP
mColourSet.setColours(colourList);
}
}
}
});
、私はちょうど私が色をループするために、リスナーにFORループに入れるために必要なものはよく分かりません。私がこれまでに試したことは、何が間違っているのか説明しなくても、揺れる赤い線を私に与えるだけです。
誰も私に助言できますか?何か助けてくれてありがとう。
赤い線がどこにあるのか分かりませんが、外部マップの値型として 'HashMap'がジェネリック型を設定していないため、キーと値の両方が' Object'に解決されます。 。 – Dave
ありがとうございます。 objectMapを意味しますか?彼らは何に設定すべきですか? – Sharon
'Map'の意味で、 'HashMap'部分は型パラメータを指定していないので、' HashMap