【问题标题】:Search date with specific label through textview通过 textview 搜索带有特定标签的日期
【发布时间】: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


【解决方案1】:

您可以使用.getText().toString() 属性检索文本视图显示的字符串,如下所示:

TextView date = (TextView) findViewById(R.id.DateTextView);

//Retrieve the text showed by the date TextView
String dateShowedByTextView = date.getText().toString();


【讨论】:

  • 我试过了,它有效。但我需要一些类似“列表在用户选择之前隐藏,列表在用户选择日期时显示”功能。
猜你喜欢
  • 2014-11-01
  • 1970-01-01
  • 2012-08-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多