2017-04-22 1 views
0

Ich schreibe eine Android-Anwendung, die die Anwesenheitsliste zeigt. Ich verwende Listview, um den Datensatz anzuzeigen. Allerdings kann ich nur eine Zeile (Element) in der Listenansicht entweder Name oder Zeit zeigen. Wie kann ich Name und Uhrzeit in der Listenansicht anzeigen?Android Listenansicht mit Firebase Unterpunkt

Firebase database structure

Hier ist der Code, ich verwende.

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) { 

      } 
     }); 

Antwort

0

1) Verwenden Recycler View

2) Erstellen Klasse:

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

3) Und Abfrage machen:

@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); 
    }