【发布时间】:2021-08-22 07:00:41
【问题描述】:
我遇到了一些问题,因为我想使用 textview 来搜索日期并显示我想要的数据。但我只能做硬代码,我不知道如何通过 textview 进行搜索并显示我搜索日期的数据。
我如何搜索日期,因为我将日期设置为标签,但我需要我的 recyclerview 才能知道我的日期显示。
这是示例
date = findViewById(R.id.DateTextView);
recyclerView = findViewById(R.id.staffList);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
attendances = new ArrayList<Attendance>();
recyclerView.setVisibility(View.GONE);
date.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Calendar calendar = Calendar.getInstance();
int YEAR = calendar.get(Calendar.YEAR);
int MONTH = calendar.get(Calendar.MONTH);
int DATE = calendar.get(Calendar.DATE);
DatePickerDialog datePickerDialog = new DatePickerDialog(ViewAttendActivity.this, new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker datePicker, int year, int month, int day) {
Calendar calendar1 = Calendar.getInstance();
calendar1.set(Calendar.YEAR, year);
calendar1.set(Calendar.MONTH, month);
calendar1.set(Calendar.DATE, day);
String dateText = DateFormat.format("MM-dd-yyyy", calendar1).toString();
date.setText(dateText);
}
}, YEAR, MONTH, DATE);
datePickerDialog.show();
}
});
String dateString = date.toString();
if (dateString.isEmpty()){
Toast.makeText(ViewAttendActivity.this, "Please Select Date First!!!", Toast.LENGTH_SHORT).show();
} else {
recyclerView.setVisibility(View.VISIBLE);
databaseReference = FirebaseDatabase.getInstance().getReference("Attendance").child("08-15-2021");
databaseReference = FirebaseDatabase.getInstance().getReference("Attendance").child(dateString);
databaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull @NotNull DataSnapshot snapshot) {
for (DataSnapshot dataSnapshot: snapshot.getChildren()){
Attendance attendance = dataSnapshot.getValue(Attendance.class);
attendances.add(attendance);
}
editStaffAttendAdapter = new EditStaffAttendAdapter(attendances, ViewAttendActivity.this);
recyclerView.setAdapter(editStaffAttendAdapter);
}
@Override
public void onCancelled(@NonNull @NotNull DatabaseError error) {
Toast.makeText(ViewAttendActivity.this, "Error", Toast.LENGTH_SHORT).show();
}
});
}
【问题讨论】:
-
这段代码中到底有什么不符合您的预期?告诉我们共享代码有什么问题。你有什么错误吗?
-
嗯,这是我的期望代码,当列表默认隐藏时,有一个文本视图需要选择一个日期,选择日期后,然后显示列表,但现在我只知道代码里面,只有我做的硬代码,但是如何让用户选择日期并显示人员列表的结果。那是我的错误。
标签: java android firebase-realtime-database