如何将所有Electrician
数据检索到ListView
中?
答案 0 :(得分:0)
如果要创建一个列表视图,其中列表视图中的每个项目都包含一名电工的一些或全部数据,则首先需要节点“电工”的数据快照。还创建一个名为“ elecrician”的对象,该对象具有与firebase数据库相同的数据字段。然后使用数据快照创建类似于“ Ryan Pierce”答案的“电工”对象数组。现在您已经有了电工的数组,可以将其数据显示在列表视图中。
此外,如果您想计算例如某个员工在该公司工作了多长时间(我认为更容易使用),那么也许可以更方便地使用毫秒(ms)而非日期作为字符串。同样,字段“ JobTitle”可能是多余的,因为节点标题已经说明了工作标题,例如“电工”。
答案 1 :(得分:0)
从firebase创建对象列表(电工),然后通过在自定义适配器中传递对象列表来创建列表视图。
答案 2 :(得分:0)
假设您有一个名为Electrician
的电工对象模型类,要获取电工对象列表,请使用以下代码:
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference electricianRef = rootRef.child("Employee").child("Electrician");
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
List<Electrician> list = new ArrayList<>();
for(DataSnapshot ds : dataSnapshot.getChildren()) {
Electrician electrician = ds.getValue(Electrician.class);
list.add(electrician);
Log.d("TAG", electrician.getLname());
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {}
};
electricianRef.addListenerForSingleValueEvent(valueEventListener);
您可以使用String类并获得电工名称列表来实现更简单的操作:
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference electricianRef = rootRef.child("Employee").child("Electrician");
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
List<String> list = new ArrayList<>();
for(DataSnapshot ds : dataSnapshot.getChildren()) {
String lName = ds.child("Lname").getValue(String.class);
list.add(lName);
Log.d("TAG", lName);
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {}
};
electricianRef.addListenerForSingleValueEvent(valueEventListener);