Commit 82701f774db7af8265cce9b47d2789a886d56041
1 parent
7a017e7a6e
Exists in
master
筛选功能优化
Showing
2 changed files
with
37 additions
and
5 deletions
Show diff stats
app/src/main/java/com/hjx/parent/StuHomeworkActivity.java
... | ... | @@ -385,9 +385,15 @@ public class StuHomeworkActivity extends BaseRxActivity<ActivityStudentHomeworkB |
385 | 385 | db.bg.setOnClickListener(v -> subjectFilter.dismiss()); |
386 | 386 | subjectFilter = new PopupWindow(db.getRoot(), LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); |
387 | 387 | subjectFilter.setOutsideTouchable(true); |
388 | - subjectFilter.setOnDismissListener(this::getHomework); | |
389 | 388 | } |
390 | 389 | subjectFilter.showAsDropDown(binding.anchorView); |
390 | + state.onFilter = i -> { | |
391 | + subjectFilter.dismiss(); | |
392 | + String subject = state.subject.getValue(); | |
393 | + binding.ftSubject.setActivated(subject != null && !subject.isEmpty()); | |
394 | + binding.ftSubject.setText(subject == null || subject.isEmpty() ? "学科" : subject); | |
395 | + getHomework(); | |
396 | + }; | |
391 | 397 | } |
392 | 398 | |
393 | 399 | private void showGradeFilter() { |
... | ... | @@ -398,9 +404,16 @@ public class StuHomeworkActivity extends BaseRxActivity<ActivityStudentHomeworkB |
398 | 404 | db.bg.setOnClickListener(v -> gradeFilter.dismiss()); |
399 | 405 | gradeFilter = new PopupWindow(db.getRoot(), LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); |
400 | 406 | gradeFilter.setOutsideTouchable(true); |
401 | - gradeFilter.setOnDismissListener(this::getHomework); | |
402 | 407 | } |
403 | 408 | gradeFilter.showAsDropDown(binding.anchorView); |
409 | + state.onFilter = i -> { | |
410 | + gradeFilter.dismiss(); | |
411 | + String grade = state.grade.getValue(); | |
412 | + binding.ftGrade.setActivated(grade != null && !grade.isEmpty()); | |
413 | + binding.ftGrade.setText(grade == null || grade.isEmpty() ? "年级" : grade); | |
414 | + | |
415 | + getHomework(); | |
416 | + }; | |
404 | 417 | } |
405 | 418 | |
406 | 419 | private void showTermFilter() { |
... | ... | @@ -411,9 +424,16 @@ public class StuHomeworkActivity extends BaseRxActivity<ActivityStudentHomeworkB |
411 | 424 | db.bg.setOnClickListener(v -> termFilter.dismiss()); |
412 | 425 | termFilter = new PopupWindow(db.getRoot(), LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); |
413 | 426 | termFilter.setOutsideTouchable(true); |
414 | - termFilter.setOnDismissListener(this::getHomework); | |
415 | 427 | } |
416 | 428 | termFilter.showAsDropDown(binding.anchorView); |
429 | + state.onFilter = i -> { | |
430 | + termFilter.dismiss(); | |
431 | + String term = state.term.getValue(); | |
432 | + binding.ftTerm.setActivated(term != null && !term.isEmpty()); | |
433 | + binding.ftTerm.setText(term == null || term.isEmpty() ? "学期" : term); | |
434 | + | |
435 | + getHomework(); | |
436 | + }; | |
417 | 437 | } |
418 | 438 | |
419 | 439 | private void showFeedbackFilter() { |
... | ... | @@ -424,9 +444,16 @@ public class StuHomeworkActivity extends BaseRxActivity<ActivityStudentHomeworkB |
424 | 444 | db.bg.setOnClickListener(v -> feedbackFilter.dismiss()); |
425 | 445 | feedbackFilter = new PopupWindow(db.getRoot(), LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); |
426 | 446 | feedbackFilter.setOutsideTouchable(true); |
427 | - feedbackFilter.setOnDismissListener(this::getHomework); | |
428 | 447 | } |
429 | 448 | feedbackFilter.showAsDropDown(binding.anchorView); |
449 | + state.onFilter = i -> { | |
450 | + feedbackFilter.dismiss(); | |
451 | + int feedback = state.feedback.getValue().intValue(); | |
452 | + binding.ftFeedback.setActivated(feedback != 0); | |
453 | + binding.ftFeedback.setText(feedback == 0 ? "反馈状态" : feedback == 1 ? "已反馈" : "未反馈"); | |
454 | + | |
455 | + getHomework(); | |
456 | + }; | |
430 | 457 | } |
431 | 458 | |
432 | 459 | @Override |
... | ... | @@ -437,25 +464,31 @@ public class StuHomeworkActivity extends BaseRxActivity<ActivityStudentHomeworkB |
437 | 464 | public static class State { |
438 | 465 | public Student student; |
439 | 466 | |
467 | + public Function1<Integer> onFilter = i -> { }; | |
468 | + | |
440 | 469 | public MutableLiveData<String> subject = new MutableLiveData<>(""); |
441 | 470 | public void setSubject(String value) { |
442 | 471 | subject.setValue(value); |
472 | + onFilter.invoke(1); | |
443 | 473 | } |
444 | 474 | |
445 | 475 | public MutableLiveData<String> grade = new MutableLiveData<>(""); |
446 | 476 | public void setGrade(String value) { |
447 | 477 | grade.setValue(value); |
478 | + onFilter.invoke(2); | |
448 | 479 | } |
449 | 480 | |
450 | 481 | public MutableLiveData<String> term = new MutableLiveData<>(""); |
451 | 482 | public void setTerm(String value) { |
452 | 483 | term.setValue(value); |
484 | + onFilter.invoke(3); | |
453 | 485 | } |
454 | 486 | |
455 | 487 | //0:全部, 1: 已反馈, 2:未反馈 |
456 | 488 | public MutableLiveData<Integer> feedback = new MutableLiveData<>(0); |
457 | 489 | public void setFeedback(int value) { |
458 | 490 | feedback.setValue(value); |
491 | + onFilter.invoke(4); | |
459 | 492 | } |
460 | 493 | } |
461 | 494 | ... | ... |
app/src/main/res/layout/activity_student_homework.xml