我正在编写一个显示出勤记录的Android应用程序。我正在使用listview来显示记录。但是,我只能在列表视图中显示名称或时间的一行(项目)。如何在列表视图中显示姓名和时间?
这是我正在使用的代码。
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) {
}
});
答案 0 :(得分:0)
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);
}