【问题标题】:Populating spinner from Firebase data从 Firebase 数据填充微调器
【发布时间】:2016-03-19 08:01:34
【问题描述】:

我想根据第一个微调器的选择填充第二个微调器。正如您在我的 firebase Json 中看到的那样,在每个锻炼下都设置了具有 true 或 false 值的元素。如果某个元素在锻炼中为真,我想在第二个微调器中显示该元素名称。例如,如果用户在第一个微调器中选择重型胸部和手臂,那么卧推和上斜哑铃推举都应该填充第二个微调器。我的当前代码得到了一些响应,但现在没有得到键值。

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) {

     }
 });

【问题讨论】:

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


    【解决方案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

    【讨论】:

    • 这是一个不错的开始,但我想检查该元素在锻炼中是否为真,以及我是否想从元素中获取 i。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-12
    • 1970-01-01
    • 1970-01-01
    • 2020-04-08
    • 1970-01-01
    • 2012-03-16
    相关资源
    最近更新 更多