我想根据第一个微调器的选择填充一个有限的微调器。正如你在我的火力基地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) {
}
});
答案 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;
}
}
}