如何在没有if语句的子级时控制datasnapshot children值。例如,当没有子级时获取消息
protected void onStart() {
super.onStart();
databaseOrders.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
personList.clear();
for (DataSnapshot postSnapshot : dataSnapshot.getChildren()) {
Person person = postSnapshot.getValue(Person.class);
personList.add(person);
}
recyclerView.setHasFixedSize(true);
// use a linear layout manager
mLayoutManager = new LinearLayoutManager(DetailActivity.this);
recyclerView.setLayoutManager(mLayoutManager);
personAdapter = new PersonAdapter(DetailActivity.this, personList);
personAdapter.setClickListener(DetailActivity.this);
recyclerView.setAdapter(personAdapter);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
最佳答案
首先必须检查datasnapshot getvalue()是否返回null
if(datSnapshot.getValue()!=null){
for (DataSnapshot postSnapshot : dataSnapshot.getChildren()) {
if(postSnapshot.getValue()!=null){
Person person = postSnapshot.getValue(Person.class);
personList.add(person);}
}}