Android列表视图与Firebase子项目

问题描述:

我正在写一个显示出勤记录的android应用程序。我使用listview来显示记录。但是,我只能在列表视图上显示一行(项目)名称或时间。如何在listview上显示名称和时间?Android列表视图与Firebase子项目

Firebase database structure

这里是我使用的代码。

public class A1Attendance extends AppCompatActivity { 

    ArrayAdapter<String> adapter; 
    List<HashMap<String , String>> list = new ArrayList<>(); 
    ListView listView; 
    String Name; 
    String Time; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_a1_attendance); 
     ListView listView = (ListView) findViewById(R.id.Listview); 
     final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
       android.R.layout.simple_list_item_1, 
       android.R.id.text1); 
     listView.setAdapter(adapter); 

     DatabaseReference reference_contacts = FirebaseDatabase.getInstance().getReference("Attendance"); 
     reference_contacts.addValueEventListener(new ValueEventListener() { 
      @Override 
      public void onDataChange(DataSnapshot dataSnapshot) { 
       adapter.clear(); 
       for (DataSnapshot ds : dataSnapshot.getChildren()){ 
        HashMap<String, String> list = new HashMap<String, String>(); 
        adapter.add(ds.child("Name").getValue().toString()); 
       } 
      } 
      @Override 
      public void onCancelled(DatabaseError databaseError) { 

      } 
     }); 

1)使用Recycler View

2)创建类:

public class User(){ 
     String name; 
     String time; 
     public User (String name, String time){....} 
     ....} 

3),并询问:

@Override 
    public void onDataChange(DataSnapshot dataSnapshot) 
    { 
     adapter.clear(); 
     List<User> userList; 
     for (DataSnapshot ds : dataSnapshot.getChildren()){ 
      Map<String, Object> userData 
userList.add(new User(ds.child("Name").getValue().toString(), 
ds.child("Time").getValue().toString())); 
     } 
     adapter.add(userList); 
    }