diff --git a/app/src/main/java/com/hjx/parent/StuHomeworkActivity.java b/app/src/main/java/com/hjx/parent/StuHomeworkActivity.java index 061c614..32f501b 100644 --- a/app/src/main/java/com/hjx/parent/StuHomeworkActivity.java +++ b/app/src/main/java/com/hjx/parent/StuHomeworkActivity.java @@ -385,9 +385,15 @@ public class StuHomeworkActivity extends BaseRxActivity subjectFilter.dismiss()); subjectFilter = new PopupWindow(db.getRoot(), LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); subjectFilter.setOutsideTouchable(true); - subjectFilter.setOnDismissListener(this::getHomework); } subjectFilter.showAsDropDown(binding.anchorView); + state.onFilter = i -> { + subjectFilter.dismiss(); + String subject = state.subject.getValue(); + binding.ftSubject.setActivated(subject != null && !subject.isEmpty()); + binding.ftSubject.setText(subject == null || subject.isEmpty() ? "学科" : subject); + getHomework(); + }; } private void showGradeFilter() { @@ -398,9 +404,16 @@ public class StuHomeworkActivity extends BaseRxActivity gradeFilter.dismiss()); gradeFilter = new PopupWindow(db.getRoot(), LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); gradeFilter.setOutsideTouchable(true); - gradeFilter.setOnDismissListener(this::getHomework); } gradeFilter.showAsDropDown(binding.anchorView); + state.onFilter = i -> { + gradeFilter.dismiss(); + String grade = state.grade.getValue(); + binding.ftGrade.setActivated(grade != null && !grade.isEmpty()); + binding.ftGrade.setText(grade == null || grade.isEmpty() ? "年级" : grade); + + getHomework(); + }; } private void showTermFilter() { @@ -411,9 +424,16 @@ public class StuHomeworkActivity extends BaseRxActivity termFilter.dismiss()); termFilter = new PopupWindow(db.getRoot(), LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); termFilter.setOutsideTouchable(true); - termFilter.setOnDismissListener(this::getHomework); } termFilter.showAsDropDown(binding.anchorView); + state.onFilter = i -> { + termFilter.dismiss(); + String term = state.term.getValue(); + binding.ftTerm.setActivated(term != null && !term.isEmpty()); + binding.ftTerm.setText(term == null || term.isEmpty() ? "学期" : term); + + getHomework(); + }; } private void showFeedbackFilter() { @@ -424,9 +444,16 @@ public class StuHomeworkActivity extends BaseRxActivity feedbackFilter.dismiss()); feedbackFilter = new PopupWindow(db.getRoot(), LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); feedbackFilter.setOutsideTouchable(true); - feedbackFilter.setOnDismissListener(this::getHomework); } feedbackFilter.showAsDropDown(binding.anchorView); + state.onFilter = i -> { + feedbackFilter.dismiss(); + int feedback = state.feedback.getValue().intValue(); + binding.ftFeedback.setActivated(feedback != 0); + binding.ftFeedback.setText(feedback == 0 ? "反馈状态" : feedback == 1 ? "已反馈" : "未反馈"); + + getHomework(); + }; } @Override @@ -437,25 +464,31 @@ public class StuHomeworkActivity extends BaseRxActivity onFilter = i -> { }; + public MutableLiveData subject = new MutableLiveData<>(""); public void setSubject(String value) { subject.setValue(value); + onFilter.invoke(1); } public MutableLiveData grade = new MutableLiveData<>(""); public void setGrade(String value) { grade.setValue(value); + onFilter.invoke(2); } public MutableLiveData term = new MutableLiveData<>(""); public void setTerm(String value) { term.setValue(value); + onFilter.invoke(3); } //0:全部, 1: 已反馈, 2:未反馈 public MutableLiveData feedback = new MutableLiveData<>(0); public void setFeedback(int value) { feedback.setValue(value); + onFilter.invoke(4); } } diff --git a/app/src/main/res/layout/activity_student_homework.xml b/app/src/main/res/layout/activity_student_homework.xml index b25c473..d85d1d6 100644 --- a/app/src/main/res/layout/activity_student_homework.xml +++ b/app/src/main/res/layout/activity_student_homework.xml @@ -48,7 +48,6 @@ android:layout_height="45dp"/>