从Firebase数据填充微调器

时间:2016-03-19 08:01:34

标签: android json firebase android-spinner firebase-realtime-database

我想根据第一个微调器的选择填充一个有限的微调器。正如你在我的火力基地Json中看到的那样,每个训练中的元素都设置为值为true或false。如果在锻炼下元素为真,我想在第二个微调器中显示该元素名称。例如,如果用户在第一个微调器中选择Heavy Chest and Arms,那么Bench press和Incline Dumbbell Press应该填充第二个微调器。我现在的代码得到了一些回复,但现在没有得到键值。

Json文件:

{
  "elements" : {
    "element_id_0" : {
      "description" : "While laying flat on your back, arms at 90 degrees etc",
      "name" : "Bench press"
    },
    "element_id_1" : {
      "description" : "Incline the backboard 30 degrees and etc etc",
      "name" : "Incline Dumbbell Press"
    }
  },
  "workouts" : {
    "workout_id_0" : {
      "category" : "Heavy Chest and Arms",
      "elements" : {
        "element_id_0" : "true",
        "element_id_1" : "true"
      }
    },
    "workout_id_1" : {
      "category" : "Light Back and Shoulders",
      "elements" : {
        "element_id_0" : "true"
      }
    }
  }
}

我的一些代码:

 FirebaseSpinnerRef.addListenerForSingleValueEvent(new ValueEventListener() {
     @Override
     public void onDataChange(DataSnapshot dataSnapshot) {
         for (DataSnapshot postSnapshot : dataSnapshot.getChildren()) {
             String category=postSnapshot.child("category").getValue().toString();
             if(category.equals(sp1)) {
                 Object j =postSnapshot.child("elements").getValue();
             }
         }
     }

     @Override
     public void onCancelled(FirebaseError firebaseError) {

     }
 });

1 个答案:

答案 0 :(得分:1)

而不是

Object j =postSnapshot.child("elements").getValue();

使用

Elements_post = postSnapshot.child("elements").getValue(Elements_.class);

您可以通过调用以下类中的Getters来获取您的值

public class Elements_ {
private ElementId0 elementId0;
private ElementId1 elementId1;
    public Elements_ (){
// must have empty construct to bind the data
}

/**
* 
* @return
* The elementId0
*/
public ElementId0 getElementId0() {
return elementId0;
}



/**
* 
* @return
* The elementId1
*/
public ElementId1 getElementId1() {
return elementId1;
}

public class ElementId0 {

private String description;
private String name;

/**
* 
* @return
* The description
*/
public String getDescription() {
return description;
}


/**
* 
* @return
* The name
*/
public String getName() {
return name;
}
}

public class ElementId1 {

private String description;
private String name;

/**
* 
* @return
* The description
*/
public String getDescription() {
return description;
}



/**
* 
* @return
* The name
*/
public String getName() {
return name;
}


}

}

看看Get data from firebase