我正在使用Firebase工作在一个Android项目中,我想获取有关酒吧的信息,我想我正确地获取数据,但我在数据库结构中有一些节点,例如该节点中的“营业时间”打开和关闭欢乐时光的小时,开始和结束时间。我检索该节点在List<Object>
这样的:如何迭代列表<Object>或获取列表元素?
这是我ValueEventListener
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
// Get Post object and use the values to update the UI
long value = dataSnapshot.getChildrenCount();
Log.d("Bar", "No. of children: " + value);
for (DataSnapshot districtSnapshot: dataSnapshot.getChildren()) {
String district = districtSnapshot.getKey();
for (DataSnapshot barSnapshot: dataSnapshot.child(district).getChildren()) {
Bar bar = barSnapshot.getValue(Bar.class);
String name = bar.getName();
String address = bar.getAddress();
List<String> photos = bar.getPhotos();
List<Object> hours = bar.getHours();
double latitude = bar.getLatitude();
double longitude = bar.getLongitude();
barsList.add(new Bar(name, address, latitude, longitude, photos));
Log.d("Bar", "Lat: " + latitude);
Log.d("Bar", "Long: " + longitude);
Log.d("Bar", "Photos: " + photos.toString());
Log.d("Bar", "Hours String: " + hours.toString());
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.w(TAG, "loadPost:onCancelled", databaseError.toException());
}
};
mPostReference.addListenerForSingleValueEvent(valueEventListener);
在Log.d("Bar", "Hours String: " + hours.toString());
我得到的阵列正确的信息,但我只是不知道如何将其转换为一种方法可以例如happyStart选择:
时间字符串:[{happyStart = 17,happyEnd = 19,开放= 17,靠近= 2}, {happyStart = 17,happyEnd = 18,开= 16,close = 2}]
请帮帮我。提前致谢!
UPDATE,加入酒吧类:
@IgnoreExtraProperties
public class Bar {
private String address;
private String name;
private double latitude;
private double longitude;
private List<Object> hours;
private List<Object> beers;
private List<String> photos;
public Bar() { }
public Bar(String name, String address, double latitude, double longitude, List<String> photos) {
this.name = name;
this.address = address;
this.photos = photos;
}
@Exclude
public Map<String, Object> toMap() {
HashMap<String, Object> result = new HashMap<>();
result.put("name", name);
result.put("address", address);
result.put("photos", photos);
result.put("hours", hours);
result.put("longitude", longitude);
result.put("latitude", latitude);
result.put("beers", beers);
return result;
}
public String getName() {
return name;
}
public String getAddress() {
return address;
}
public List<Object> getHours() {
return hours;
}
public List<Object> getBeers() {
return beers;
}
public List<String> getPhotos() {
return photos;
}
public double getLatitude() {
return latitude;
}
public double getLongitude() {
return longitude;
}
}
安置自己的'Bar'类 – Apoorv
'私有列表
我刚刚发布了我的Bar类@Apoorv –