Commit 937d37ac8b08ce38db5603ee0c11e407fdb9df98
1 parent
92afa3a05c
Exists in
master
切换学生
Showing
4 changed files
with
30 additions
and
0 deletions
Show diff stats
app/src/main/java/com/hjx/parent/StuHomeworkActivity.java
1 | package com.hjx.parent; | 1 | package com.hjx.parent; |
2 | 2 | ||
3 | import android.annotation.SuppressLint; | 3 | import android.annotation.SuppressLint; |
4 | import android.content.Intent; | 4 | import android.content.Intent; |
5 | import android.os.Bundle; | 5 | import android.os.Bundle; |
6 | import android.widget.LinearLayout; | 6 | import android.widget.LinearLayout; |
7 | import android.widget.PopupWindow; | 7 | import android.widget.PopupWindow; |
8 | 8 | ||
9 | import androidx.annotation.Nullable; | ||
9 | import androidx.lifecycle.MutableLiveData; | 10 | import androidx.lifecycle.MutableLiveData; |
10 | 11 | ||
11 | import com.google.gson.Gson; | 12 | import com.google.gson.Gson; |
12 | import com.hjx.parent.adapter.HomeworkListAdapter; | 13 | import com.hjx.parent.adapter.HomeworkListAdapter; |
13 | import com.hjx.parent.databinding.ActivityStudentHomeworkBinding; | 14 | import com.hjx.parent.databinding.ActivityStudentHomeworkBinding; |
14 | import com.hjx.parent.databinding.PopupFilterFeedbackBinding; | 15 | import com.hjx.parent.databinding.PopupFilterFeedbackBinding; |
15 | import com.hjx.parent.databinding.PopupFilterGradeBinding; | 16 | import com.hjx.parent.databinding.PopupFilterGradeBinding; |
16 | import com.hjx.parent.databinding.PopupFilterSubjectBinding; | 17 | import com.hjx.parent.databinding.PopupFilterSubjectBinding; |
17 | import com.hjx.parent.databinding.PopupFilterTermBinding; | 18 | import com.hjx.parent.databinding.PopupFilterTermBinding; |
18 | import com.hjx.parent.dialog.MsgConfirmDialog; | 19 | import com.hjx.parent.dialog.MsgConfirmDialog; |
19 | import com.hjx.parent.rx.BaseRxActivity; | 20 | import com.hjx.parent.rx.BaseRxActivity; |
20 | import com.prws.common.bean.Student; | 21 | import com.prws.common.bean.Student; |
21 | import com.prws.common.bean.homework.HomeworkList; | 22 | import com.prws.common.bean.homework.HomeworkList; |
22 | import com.prws.common.net.NetWorks; | 23 | import com.prws.common.net.NetWorks; |
23 | import com.prws.common.utils.SharedPreferencesUtil; | 24 | import com.prws.common.utils.SharedPreferencesUtil; |
24 | import com.trello.rxlifecycle2.android.RxLifecycleAndroid; | 25 | import com.trello.rxlifecycle2.android.RxLifecycleAndroid; |
25 | 26 | ||
26 | import java.util.Collections; | 27 | import java.util.Collections; |
27 | 28 | ||
28 | import io.reactivex.Observable; | 29 | import io.reactivex.Observable; |
29 | import io.reactivex.android.schedulers.AndroidSchedulers; | 30 | import io.reactivex.android.schedulers.AndroidSchedulers; |
30 | import io.reactivex.schedulers.Schedulers; | 31 | import io.reactivex.schedulers.Schedulers; |
31 | 32 | ||
32 | public class StuHomeworkActivity extends BaseRxActivity<ActivityStudentHomeworkBinding> { | 33 | public class StuHomeworkActivity extends BaseRxActivity<ActivityStudentHomeworkBinding> { |
33 | 34 | ||
34 | private final HomeworkListAdapter homeworkAdapter = new HomeworkListAdapter(); | 35 | private final HomeworkListAdapter homeworkAdapter = new HomeworkListAdapter(); |
35 | 36 | ||
36 | PopupWindow subjectFilter, gradeFilter, termFilter, feedbackFilter; | 37 | PopupWindow subjectFilter, gradeFilter, termFilter, feedbackFilter; |
37 | MsgConfirmDialog deleteDialog; | 38 | MsgConfirmDialog deleteDialog; |
38 | State state = new State(); | 39 | State state = new State(); |
39 | 40 | ||
40 | private void handlerIntent() { | 41 | private void handlerIntent() { |
41 | String json = getIntent().getStringExtra("studentJson"); | 42 | String json = getIntent().getStringExtra("studentJson"); |
42 | if (json == null) json = (String) SharedPreferencesUtil.getData("student", ""); | 43 | if (json == null) json = (String) SharedPreferencesUtil.getData("student", ""); |
43 | try { state.student = new Gson().fromJson(json, Student.class); } | 44 | try { state.student = new Gson().fromJson(json, Student.class); } |
44 | catch (Throwable t) { t.printStackTrace(); } | 45 | catch (Throwable t) { t.printStackTrace(); } |
45 | } | 46 | } |
46 | 47 | ||
47 | @SuppressLint("SetTextI18n") | 48 | @SuppressLint("SetTextI18n") |
48 | @Override | 49 | @Override |
49 | public void initView(Bundle savedInstanceState) { | 50 | public void initView(Bundle savedInstanceState) { |
50 | handlerIntent(); | 51 | handlerIntent(); |
51 | if (state.student == null) { | 52 | if (state.student == null) { |
52 | finish(); | 53 | finish(); |
53 | return; | 54 | return; |
54 | } | 55 | } |
55 | binding.toolbar.setNavigationOnClickListener(v -> onBackPressed()); | 56 | binding.toolbar.setNavigationOnClickListener(v -> onBackPressed()); |
56 | binding.tvTitle.setText(state.student.stuName + "的全部作业"); | 57 | binding.tvTitle.setText(state.student.stuName + "的全部作业"); |
57 | 58 | ||
58 | binding.recyclerView.setAdapter(homeworkAdapter); | 59 | binding.recyclerView.setAdapter(homeworkAdapter); |
59 | getHomework(); | 60 | getHomework(); |
60 | 61 | ||
61 | binding.ftSubject.setOnClickListener(v -> showSubjectFilter()); | 62 | binding.ftSubject.setOnClickListener(v -> showSubjectFilter()); |
62 | binding.ftGrade.setOnClickListener(v -> showGradeFilter()); | 63 | binding.ftGrade.setOnClickListener(v -> showGradeFilter()); |
63 | binding.ftTerm.setOnClickListener(v -> showTermFilter()); | 64 | binding.ftTerm.setOnClickListener(v -> showTermFilter()); |
64 | binding.ftFeedback.setOnClickListener(v -> showFeedbackFilter()); | 65 | binding.ftFeedback.setOnClickListener(v -> showFeedbackFilter()); |
65 | homeworkAdapter.deleteCall = data -> { | 66 | homeworkAdapter.deleteCall = data -> { |
66 | if (deleteDialog == null) { | 67 | if (deleteDialog == null) { |
67 | deleteDialog = new MsgConfirmDialog.Builder(this) | 68 | deleteDialog = new MsgConfirmDialog.Builder(this) |
68 | .setMessage("确认要删除吗?一旦删除不可恢复") | 69 | .setMessage("确认要删除吗?一旦删除不可恢复") |
69 | .setPositive("暂不删除") | 70 | .setPositive("暂不删除") |
70 | .setNegative("确定删除") | 71 | .setNegative("确定删除") |
71 | .build(); | 72 | .build(); |
72 | } | 73 | } |
73 | deleteDialog.show(() -> { | 74 | deleteDialog.show(() -> { |
74 | deleteHomework(data); | 75 | deleteHomework(data); |
75 | return true; | 76 | return true; |
76 | }, null); | 77 | }, null); |
77 | }; | 78 | }; |
78 | homeworkAdapter.detailCall = data -> { | 79 | homeworkAdapter.detailCall = data -> { |
79 | Intent intent = new Intent(this, HomeworkDetailActivity.class); | 80 | Intent intent = new Intent(this, HomeworkDetailActivity.class); |
80 | intent.putExtra("data", data); | 81 | intent.putExtra("data", data); |
81 | intent.putExtra("student", state.student); | 82 | intent.putExtra("student", state.student); |
82 | startActivity(intent); | 83 | startActivity(intent); |
83 | }; | 84 | }; |
85 | |||
86 | binding.btnChangeStudent.setOnClickListener(v -> { | ||
87 | Intent intent = new Intent(this, TeacherChooseActivity.class); | ||
88 | intent.putExtra("needBack", true); | ||
89 | startActivityForResult(intent, 0xA01); | ||
90 | }); | ||
91 | } | ||
92 | |||
93 | @SuppressLint("SetTextI18n") | ||
94 | @Override | ||
95 | protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { | ||
96 | super.onActivityResult(requestCode, resultCode, data); | ||
97 | if (requestCode == 0xA01 && resultCode == RESULT_OK) { | ||
98 | String json = (String) SharedPreferencesUtil.getData("student", ""); | ||
99 | try { | ||
100 | state.student = new Gson().fromJson(json, Student.class); | ||
101 | binding.tvTitle.setText(state.student.stuName + "的全部作业"); | ||
102 | getHomework(); | ||
103 | } | ||
104 | catch (Throwable t) { t.printStackTrace(); } | ||
105 | } | ||
84 | } | 106 | } |
85 | 107 | ||
86 | @SuppressLint("CheckResult") | 108 | @SuppressLint("CheckResult") |
87 | protected void deleteHomework(HomeworkList data) { | 109 | protected void deleteHomework(HomeworkList data) { |
88 | NetWorks.service_url.deleteHomework(NetWorks.getHeader(), data.getId()) | 110 | NetWorks.service_url.deleteHomework(NetWorks.getHeader(), data.getId()) |
89 | .subscribeOn(Schedulers.io()) | 111 | .subscribeOn(Schedulers.io()) |
90 | .observeOn(AndroidSchedulers.mainThread()) | 112 | .observeOn(AndroidSchedulers.mainThread()) |
91 | .compose(RxLifecycleAndroid.bindActivity(getRxLifecycle())) | 113 | .compose(RxLifecycleAndroid.bindActivity(getRxLifecycle())) |
92 | .subscribe((response, th) -> { | 114 | .subscribe((response, th) -> { |
93 | if (th != null) th.printStackTrace(); | 115 | if (th != null) th.printStackTrace(); |
94 | if (response != null && response.getSuccess()) { | 116 | if (response != null && response.getSuccess()) { |
95 | getHomework(); | 117 | getHomework(); |
96 | } | 118 | } |
97 | }); | 119 | }); |
98 | 120 | ||
99 | } | 121 | } |
100 | 122 | ||
101 | @SuppressLint("CheckResult") | 123 | @SuppressLint("CheckResult") |
102 | protected void getHomework() { | 124 | protected void getHomework() { |
103 | NetWorks.service_url.getStudentHomework(NetWorks.getHeader(), state.student.stuId) | 125 | NetWorks.service_url.getStudentHomework(NetWorks.getHeader(), state.student.stuId) |
104 | .subscribeOn(Schedulers.io()) | 126 | .subscribeOn(Schedulers.io()) |
105 | .observeOn(AndroidSchedulers.mainThread()) | 127 | .observeOn(AndroidSchedulers.mainThread()) |
106 | .compose(RxLifecycleAndroid.bindActivity(getRxLifecycle())) | 128 | .compose(RxLifecycleAndroid.bindActivity(getRxLifecycle())) |
107 | .toObservable() | 129 | .toObservable() |
108 | .flatMap(response -> Observable.fromIterable(response.getData())) | 130 | .flatMap(response -> Observable.fromIterable(response.getData())) |
109 | // 过滤 | 131 | // 过滤 |
110 | .filter(data -> { // 学科 | 132 | .filter(data -> { // 学科 |
111 | String subject = state.subject.getValue(); | 133 | String subject = state.subject.getValue(); |
112 | if (subject == null || subject.isEmpty()) return true; | 134 | if (subject == null || subject.isEmpty()) return true; |
113 | else return subject.equals(data.getSubject()); | 135 | else return subject.equals(data.getSubject()); |
114 | }) | 136 | }) |
115 | .filter(data -> { // 年级 | 137 | .filter(data -> { // 年级 |
116 | String grade = state.grade.getValue(); | 138 | String grade = state.grade.getValue(); |
117 | if (grade == null || grade.isEmpty()) return true; | 139 | if (grade == null || grade.isEmpty()) return true; |
118 | else return grade.equals(data.getGrade()); | 140 | else return grade.equals(data.getGrade()); |
119 | }) | 141 | }) |
120 | .filter(data -> { // 学期 | 142 | .filter(data -> { // 学期 |
121 | String term = state.term.getValue(); | 143 | String term = state.term.getValue(); |
122 | if (term == null || term.isEmpty()) return true; | 144 | if (term == null || term.isEmpty()) return true; |
123 | else return term.equals(data.getTerm()); | 145 | else return term.equals(data.getTerm()); |
124 | }) | 146 | }) |
125 | .filter(data -> { // 反馈 | 147 | .filter(data -> { // 反馈 |
126 | Integer feedback = state.feedback.getValue(); | 148 | Integer feedback = state.feedback.getValue(); |
127 | if (feedback == null || feedback == 0) return true; | 149 | if (feedback == null || feedback == 0) return true; |
128 | else return (feedback == 1 && data.getRight() != null) || (feedback == 2 && data.getRight() == null); | 150 | else return (feedback == 1 && data.getRight() != null) || (feedback == 2 && data.getRight() == null); |
129 | }) | 151 | }) |
130 | // 过滤完成, 收集 | 152 | // 过滤完成, 收集 |
131 | .toList() | 153 | .toList() |
132 | .subscribe((data, th) -> { | 154 | .subscribe((data, th) -> { |
133 | if (th != null) th.printStackTrace(); | 155 | if (th != null) th.printStackTrace(); |
134 | if (data != null) { | 156 | if (data != null) { |
135 | Collections.sort(data); | 157 | Collections.sort(data); |
136 | } | 158 | } |
137 | homeworkAdapter.setNewData(data); | 159 | homeworkAdapter.setNewData(data); |
138 | }); | 160 | }); |
139 | } | 161 | } |
140 | 162 | ||
141 | private void showSubjectFilter() { | 163 | private void showSubjectFilter() { |
142 | if (subjectFilter == null) { | 164 | if (subjectFilter == null) { |
143 | PopupFilterSubjectBinding db = PopupFilterSubjectBinding.inflate(getLayoutInflater()); | 165 | PopupFilterSubjectBinding db = PopupFilterSubjectBinding.inflate(getLayoutInflater()); |
144 | db.setLifecycleOwner(this); | 166 | db.setLifecycleOwner(this); |
145 | db.setState(state); | 167 | db.setState(state); |
146 | db.bg.setOnClickListener(v -> subjectFilter.dismiss()); | 168 | db.bg.setOnClickListener(v -> subjectFilter.dismiss()); |
147 | subjectFilter = new PopupWindow(db.getRoot(), LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); | 169 | subjectFilter = new PopupWindow(db.getRoot(), LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); |
148 | subjectFilter.setOutsideTouchable(true); | 170 | subjectFilter.setOutsideTouchable(true); |
149 | subjectFilter.setOnDismissListener(this::getHomework); | 171 | subjectFilter.setOnDismissListener(this::getHomework); |
150 | } | 172 | } |
151 | subjectFilter.showAsDropDown(binding.anchorView); | 173 | subjectFilter.showAsDropDown(binding.anchorView); |
152 | } | 174 | } |
153 | 175 | ||
154 | private void showGradeFilter() { | 176 | private void showGradeFilter() { |
155 | if (gradeFilter == null) { | 177 | if (gradeFilter == null) { |
156 | PopupFilterGradeBinding db = PopupFilterGradeBinding.inflate(getLayoutInflater()); | 178 | PopupFilterGradeBinding db = PopupFilterGradeBinding.inflate(getLayoutInflater()); |
157 | db.setLifecycleOwner(this); | 179 | db.setLifecycleOwner(this); |
158 | db.setState(state); | 180 | db.setState(state); |
159 | db.bg.setOnClickListener(v -> gradeFilter.dismiss()); | 181 | db.bg.setOnClickListener(v -> gradeFilter.dismiss()); |
160 | gradeFilter = new PopupWindow(db.getRoot(), LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); | 182 | gradeFilter = new PopupWindow(db.getRoot(), LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); |
161 | gradeFilter.setOutsideTouchable(true); | 183 | gradeFilter.setOutsideTouchable(true); |
162 | gradeFilter.setOnDismissListener(this::getHomework); | 184 | gradeFilter.setOnDismissListener(this::getHomework); |
163 | } | 185 | } |
164 | gradeFilter.showAsDropDown(binding.anchorView); | 186 | gradeFilter.showAsDropDown(binding.anchorView); |
165 | } | 187 | } |
166 | 188 | ||
167 | private void showTermFilter() { | 189 | private void showTermFilter() { |
168 | if (termFilter == null) { | 190 | if (termFilter == null) { |
169 | PopupFilterTermBinding db = PopupFilterTermBinding.inflate(getLayoutInflater()); | 191 | PopupFilterTermBinding db = PopupFilterTermBinding.inflate(getLayoutInflater()); |
170 | db.setLifecycleOwner(this); | 192 | db.setLifecycleOwner(this); |
171 | db.setState(state); | 193 | db.setState(state); |
172 | db.bg.setOnClickListener(v -> termFilter.dismiss()); | 194 | db.bg.setOnClickListener(v -> termFilter.dismiss()); |
173 | termFilter = new PopupWindow(db.getRoot(), LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); | 195 | termFilter = new PopupWindow(db.getRoot(), LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); |
174 | termFilter.setOutsideTouchable(true); | 196 | termFilter.setOutsideTouchable(true); |
175 | termFilter.setOnDismissListener(this::getHomework); | 197 | termFilter.setOnDismissListener(this::getHomework); |
176 | } | 198 | } |
177 | termFilter.showAsDropDown(binding.anchorView); | 199 | termFilter.showAsDropDown(binding.anchorView); |
178 | } | 200 | } |
179 | 201 | ||
180 | private void showFeedbackFilter() { | 202 | private void showFeedbackFilter() { |
181 | if (feedbackFilter == null) { | 203 | if (feedbackFilter == null) { |
182 | PopupFilterFeedbackBinding db = PopupFilterFeedbackBinding.inflate(getLayoutInflater()); | 204 | PopupFilterFeedbackBinding db = PopupFilterFeedbackBinding.inflate(getLayoutInflater()); |
183 | db.setLifecycleOwner(this); | 205 | db.setLifecycleOwner(this); |
184 | db.setState(state); | 206 | db.setState(state); |
185 | db.bg.setOnClickListener(v -> feedbackFilter.dismiss()); | 207 | db.bg.setOnClickListener(v -> feedbackFilter.dismiss()); |
186 | feedbackFilter = new PopupWindow(db.getRoot(), LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); | 208 | feedbackFilter = new PopupWindow(db.getRoot(), LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); |
187 | feedbackFilter.setOutsideTouchable(true); | 209 | feedbackFilter.setOutsideTouchable(true); |
188 | feedbackFilter.setOnDismissListener(this::getHomework); | 210 | feedbackFilter.setOnDismissListener(this::getHomework); |
189 | } | 211 | } |
190 | feedbackFilter.showAsDropDown(binding.anchorView); | 212 | feedbackFilter.showAsDropDown(binding.anchorView); |
191 | } | 213 | } |
192 | 214 | ||
193 | @Override | 215 | @Override |
194 | protected ActivityStudentHomeworkBinding getViewBinding() { | 216 | protected ActivityStudentHomeworkBinding getViewBinding() { |
195 | return ActivityStudentHomeworkBinding.inflate(getLayoutInflater()); | 217 | return ActivityStudentHomeworkBinding.inflate(getLayoutInflater()); |
196 | } | 218 | } |
197 | 219 | ||
198 | public static class State { | 220 | public static class State { |
199 | public Student student; | 221 | public Student student; |
200 | 222 | ||
201 | public MutableLiveData<String> subject = new MutableLiveData<>(""); | 223 | public MutableLiveData<String> subject = new MutableLiveData<>(""); |
202 | public void setSubject(String value) { | 224 | public void setSubject(String value) { |
203 | subject.setValue(value); | 225 | subject.setValue(value); |
204 | } | 226 | } |
205 | 227 | ||
206 | public MutableLiveData<String> grade = new MutableLiveData<>(""); | 228 | public MutableLiveData<String> grade = new MutableLiveData<>(""); |
207 | public void setGrade(String value) { | 229 | public void setGrade(String value) { |
208 | grade.setValue(value); | 230 | grade.setValue(value); |
209 | } | 231 | } |
210 | 232 | ||
211 | public MutableLiveData<String> term = new MutableLiveData<>(""); | 233 | public MutableLiveData<String> term = new MutableLiveData<>(""); |
212 | public void setTerm(String value) { | 234 | public void setTerm(String value) { |
213 | term.setValue(value); | 235 | term.setValue(value); |
214 | } | 236 | } |
215 | 237 | ||
216 | //0:全部, 1: 已反馈, 2:未反馈 | 238 | //0:全部, 1: 已反馈, 2:未反馈 |
217 | public MutableLiveData<Integer> feedback = new MutableLiveData<>(0); | 239 | public MutableLiveData<Integer> feedback = new MutableLiveData<>(0); |
218 | public void setFeedback(int value) { | 240 | public void setFeedback(int value) { |
219 | feedback.setValue(value); | 241 | feedback.setValue(value); |
220 | } | 242 | } |
221 | } | 243 | } |
222 | } | 244 | } |
223 | 245 |
app/src/main/java/com/hjx/parent/TeacherChooseActivity.java
1 | package com.hjx.parent; | 1 | package com.hjx.parent; |
2 | 2 | ||
3 | import android.content.Intent; | 3 | import android.content.Intent; |
4 | import android.text.TextUtils; | 4 | import android.text.TextUtils; |
5 | import android.view.View; | 5 | import android.view.View; |
6 | import android.widget.ImageView; | 6 | import android.widget.ImageView; |
7 | 7 | ||
8 | import androidx.annotation.NonNull; | 8 | import androidx.annotation.NonNull; |
9 | import androidx.recyclerview.widget.LinearLayoutManager; | 9 | import androidx.recyclerview.widget.LinearLayoutManager; |
10 | import androidx.recyclerview.widget.RecyclerView; | 10 | import androidx.recyclerview.widget.RecyclerView; |
11 | 11 | ||
12 | import com.bumptech.glide.Glide; | 12 | import com.bumptech.glide.Glide; |
13 | import com.bumptech.glide.load.resource.bitmap.RoundedCorners; | 13 | import com.bumptech.glide.load.resource.bitmap.RoundedCorners; |
14 | import com.bumptech.glide.request.RequestOptions; | 14 | import com.bumptech.glide.request.RequestOptions; |
15 | import com.chad.library.adapter.base.BaseQuickAdapter; | 15 | import com.chad.library.adapter.base.BaseQuickAdapter; |
16 | import com.chad.library.adapter.base.BaseViewHolder; | 16 | import com.chad.library.adapter.base.BaseViewHolder; |
17 | import com.google.gson.Gson; | 17 | import com.google.gson.Gson; |
18 | import com.hjx.parent.bean.StudentBean; | 18 | import com.hjx.parent.bean.StudentBean; |
19 | import com.prws.common.base.BaseActivity; | 19 | import com.prws.common.base.BaseActivity; |
20 | import com.prws.common.base.BasePresenter; | 20 | import com.prws.common.base.BasePresenter; |
21 | import com.prws.common.net.NetWorks; | 21 | import com.prws.common.net.NetWorks; |
22 | import com.prws.common.utils.LogUtil; | 22 | import com.prws.common.utils.LogUtil; |
23 | import com.prws.common.utils.ScreenUtils; | 23 | import com.prws.common.utils.ScreenUtils; |
24 | import com.prws.common.utils.SharedPreferencesUtil; | 24 | import com.prws.common.utils.SharedPreferencesUtil; |
25 | 25 | ||
26 | import org.json.JSONArray; | 26 | import org.json.JSONArray; |
27 | import org.json.JSONObject; | 27 | import org.json.JSONObject; |
28 | 28 | ||
29 | import java.util.ArrayList; | 29 | import java.util.ArrayList; |
30 | 30 | ||
31 | import butterknife.BindView; | 31 | import butterknife.BindView; |
32 | import butterknife.OnClick; | 32 | import butterknife.OnClick; |
33 | import io.reactivex.Observer; | 33 | import io.reactivex.Observer; |
34 | import io.reactivex.disposables.Disposable; | 34 | import io.reactivex.disposables.Disposable; |
35 | import okhttp3.ResponseBody; | 35 | import okhttp3.ResponseBody; |
36 | 36 | ||
37 | public class TeacherChooseActivity extends BaseActivity { | 37 | public class TeacherChooseActivity extends BaseActivity { |
38 | @BindView(R.id.recycle) | 38 | @BindView(R.id.recycle) |
39 | RecyclerView recycle; | 39 | RecyclerView recycle; |
40 | private int select = 0; | 40 | private int select = 0; |
41 | 41 | ||
42 | @Override | 42 | @Override |
43 | protected int layoutResId() { | 43 | protected int layoutResId() { |
44 | return R.layout.choose_activity; | 44 | return R.layout.choose_activity; |
45 | } | 45 | } |
46 | 46 | ||
47 | @Override | 47 | @Override |
48 | public Object getContract() { | 48 | public Object getContract() { |
49 | return null; | 49 | return null; |
50 | } | 50 | } |
51 | 51 | ||
52 | @Override | 52 | @Override |
53 | public BasePresenter getPresenter() { | 53 | public BasePresenter getPresenter() { |
54 | return null; | 54 | return null; |
55 | } | 55 | } |
56 | 56 | ||
57 | @Override | 57 | @Override |
58 | protected void initView() { | 58 | protected void initView() { |
59 | 59 | ||
60 | } | 60 | } |
61 | 61 | ||
62 | @Override | 62 | @Override |
63 | protected void initListener() { | 63 | protected void initListener() { |
64 | 64 | ||
65 | } | 65 | } |
66 | 66 | ||
67 | @Override | 67 | @Override |
68 | protected void initData() { | 68 | protected void initData() { |
69 | 69 | ||
70 | } | 70 | } |
71 | 71 | ||
72 | @Override | 72 | @Override |
73 | public void onNetChanged(int netWorkState) { | 73 | public void onNetChanged(int netWorkState) { |
74 | 74 | ||
75 | } | 75 | } |
76 | 76 | ||
77 | @Override | 77 | @Override |
78 | protected void onResume() { | 78 | protected void onResume() { |
79 | super.onResume(); | 79 | super.onResume(); |
80 | loadChildList(); | 80 | loadChildList(); |
81 | } | 81 | } |
82 | 82 | ||
83 | ArrayList<StudentBean> alist = new ArrayList<>(); | 83 | ArrayList<StudentBean> alist = new ArrayList<>(); |
84 | 84 | ||
85 | public void loadChildList() { | 85 | public void loadChildList() { |
86 | NetWorks.listStudent(new Observer<ResponseBody>() { | 86 | NetWorks.listStudent(new Observer<ResponseBody>() { |
87 | @Override | 87 | @Override |
88 | public void onSubscribe(Disposable d) { | 88 | public void onSubscribe(Disposable d) { |
89 | 89 | ||
90 | } | 90 | } |
91 | 91 | ||
92 | @Override | 92 | @Override |
93 | public void onNext(ResponseBody responseBody) { | 93 | public void onNext(ResponseBody responseBody) { |
94 | try { | 94 | try { |
95 | String str = responseBody.string().toString(); | 95 | String str = responseBody.string().toString(); |
96 | LogUtil.e("TAG", "----" + str); | 96 | LogUtil.e("TAG", "----" + str); |
97 | JSONObject jo = new JSONObject(str); | 97 | JSONObject jo = new JSONObject(str); |
98 | boolean isSucceed = jo.getBoolean("success"); | 98 | boolean isSucceed = jo.getBoolean("success"); |
99 | if (isSucceed) { | 99 | if (isSucceed) { |
100 | JSONArray jarr = jo.getJSONArray("data"); | 100 | JSONArray jarr = jo.getJSONArray("data"); |
101 | alist.clear(); | 101 | alist.clear(); |
102 | for (int i = 0; i < jarr.length(); i++) { | 102 | for (int i = 0; i < jarr.length(); i++) { |
103 | JSONObject jo2 = jarr.getJSONObject(i); | 103 | JSONObject jo2 = jarr.getJSONObject(i); |
104 | Gson gson = new Gson(); | 104 | Gson gson = new Gson(); |
105 | StudentBean sb = gson.fromJson(jo2.toString(), StudentBean.class); | 105 | StudentBean sb = gson.fromJson(jo2.toString(), StudentBean.class); |
106 | alist.add(sb); | 106 | alist.add(sb); |
107 | } | 107 | } |
108 | loadList(); | 108 | loadList(); |
109 | } else { | 109 | } else { |
110 | 110 | ||
111 | } | 111 | } |
112 | } catch (Exception e) { | 112 | } catch (Exception e) { |
113 | e.printStackTrace(); | 113 | e.printStackTrace(); |
114 | } | 114 | } |
115 | } | 115 | } |
116 | 116 | ||
117 | @Override | 117 | @Override |
118 | public void onError(Throwable e) { | 118 | public void onError(Throwable e) { |
119 | 119 | ||
120 | } | 120 | } |
121 | 121 | ||
122 | @Override | 122 | @Override |
123 | public void onComplete() { | 123 | public void onComplete() { |
124 | 124 | ||
125 | } | 125 | } |
126 | }); | 126 | }); |
127 | } | 127 | } |
128 | 128 | ||
129 | public void loadList() { | 129 | public void loadList() { |
130 | String student = (String) SharedPreferencesUtil.getData("student", ""); | 130 | String student = (String) SharedPreferencesUtil.getData("student", ""); |
131 | try { | 131 | try { |
132 | StudentBean studentBean = new Gson().fromJson(student, StudentBean.class); | 132 | StudentBean studentBean = new Gson().fromJson(student, StudentBean.class); |
133 | for (int i = 0; i < alist.size(); i++) { | 133 | for (int i = 0; i < alist.size(); i++) { |
134 | if (studentBean.getStuId().equals(alist.get(i).getStuId())) { | 134 | if (studentBean.getStuId().equals(alist.get(i).getStuId())) { |
135 | select = i; | 135 | select = i; |
136 | break; | 136 | break; |
137 | } | 137 | } |
138 | } | 138 | } |
139 | } catch (Exception e) { | 139 | } catch (Exception e) { |
140 | 140 | ||
141 | } | 141 | } |
142 | BaseQuickAdapter adapter = new BaseQuickAdapter(R.layout.item_child_choose, alist) { | 142 | BaseQuickAdapter adapter = new BaseQuickAdapter(R.layout.item_child_choose, alist) { |
143 | @Override | 143 | @Override |
144 | public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) { | 144 | public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) { |
145 | 145 | ||
146 | } | 146 | } |
147 | 147 | ||
148 | @Override | 148 | @Override |
149 | protected void convert(@NonNull BaseViewHolder item, Object o) { | 149 | protected void convert(@NonNull BaseViewHolder item, Object o) { |
150 | StudentBean studentBean = alist.get(item.getAdapterPosition()); | 150 | StudentBean studentBean = alist.get(item.getAdapterPosition()); |
151 | item.setText(R.id.tv_name, studentBean.getStuName()); | 151 | item.setText(R.id.tv_name, studentBean.getStuName()); |
152 | item.setBackgroundRes(R.id.rl_child, select == item.getAdapterPosition() ? R.drawable.bg_solid_white_10_or : R.drawable.bg_solid_white_10); | 152 | item.setBackgroundRes(R.id.rl_child, select == item.getAdapterPosition() ? R.drawable.bg_solid_white_10_or : R.drawable.bg_solid_white_10); |
153 | item.setImageResource(R.id.iv_select, select == item.getAdapterPosition() ? R.mipmap.gx : R.mipmap.wsyq); | 153 | item.setImageResource(R.id.iv_select, select == item.getAdapterPosition() ? R.mipmap.gx : R.mipmap.wsyq); |
154 | item.setVisible(R.id.rl_add, false); | 154 | item.setVisible(R.id.rl_add, false); |
155 | if (TextUtils.isEmpty(studentBean.getPhoto())) { | 155 | if (TextUtils.isEmpty(studentBean.getPhoto())) { |
156 | item.setImageResource(R.id.iv_avatar, studentBean.getGender() == 0 ? R.mipmap.ic_avatar_male : R.mipmap.ic_avatar_female); | 156 | item.setImageResource(R.id.iv_avatar, studentBean.getGender() == 0 ? R.mipmap.ic_avatar_male : R.mipmap.ic_avatar_female); |
157 | } else { | 157 | } else { |
158 | RoundedCorners roundedCorners = new RoundedCorners(ScreenUtils.dpToPx(TeacherChooseActivity.this, 45)); | 158 | RoundedCorners roundedCorners = new RoundedCorners(ScreenUtils.dpToPx(TeacherChooseActivity.this, 45)); |
159 | RequestOptions options = RequestOptions.bitmapTransform(roundedCorners); | 159 | RequestOptions options = RequestOptions.bitmapTransform(roundedCorners); |
160 | Glide.with(TeacherChooseActivity.this).load(studentBean.getPhoto()).apply(options).into((ImageView) item.getView(R.id.iv_avatar)); | 160 | Glide.with(TeacherChooseActivity.this).load(studentBean.getPhoto()).apply(options).into((ImageView) item.getView(R.id.iv_avatar)); |
161 | } | 161 | } |
162 | item.setVisible(R.id.iv_vip, !"虚拟".equals(studentBean.getTeacherIdentity())); | 162 | item.setVisible(R.id.iv_vip, !"虚拟".equals(studentBean.getTeacherIdentity())); |
163 | item.getConvertView().setOnClickListener(new View.OnClickListener() { | 163 | item.getConvertView().setOnClickListener(new View.OnClickListener() { |
164 | @Override | 164 | @Override |
165 | public void onClick(View view) { | 165 | public void onClick(View view) { |
166 | select = item.getAdapterPosition(); | 166 | select = item.getAdapterPosition(); |
167 | notifyDataSetChanged(); | 167 | notifyDataSetChanged(); |
168 | } | 168 | } |
169 | }); | 169 | }); |
170 | } | 170 | } |
171 | }; | 171 | }; |
172 | recycle.setLayoutManager(new LinearLayoutManager(TeacherChooseActivity.this, LinearLayoutManager.VERTICAL, false)); | 172 | recycle.setLayoutManager(new LinearLayoutManager(TeacherChooseActivity.this, LinearLayoutManager.VERTICAL, false)); |
173 | recycle.setAdapter(adapter); | 173 | recycle.setAdapter(adapter); |
174 | } | 174 | } |
175 | 175 | ||
176 | @OnClick(R.id.tv_confirm) | 176 | @OnClick(R.id.tv_confirm) |
177 | public void confirm(View view) { | 177 | public void confirm(View view) { |
178 | if (alist.size() > 0 && alist.size() - 1 >= select && alist.get(select) != null) { | 178 | if (alist.size() > 0 && alist.size() - 1 >= select && alist.get(select) != null) { |
179 | StudentBean studentBean = alist.get(select); | 179 | StudentBean studentBean = alist.get(select); |
180 | if (studentBean.getStuId() != null) { | 180 | if (studentBean.getStuId() != null) { |
181 | if (getIntent().getBooleanExtra("needBack", false)) { | 181 | if (getIntent().getBooleanExtra("needBack", false)) { |
182 | SharedPreferencesUtil.putData("student", new Gson().toJson(studentBean)); | 182 | SharedPreferencesUtil.putData("student", new Gson().toJson(studentBean)); |
183 | } else { | 183 | } else { |
184 | Intent intent = new Intent(TeacherChooseActivity.this, TeacherMainActivity.class); | 184 | Intent intent = new Intent(TeacherChooseActivity.this, TeacherMainActivity.class); |
185 | SharedPreferencesUtil.putData("student", new Gson().toJson(studentBean)); | 185 | SharedPreferencesUtil.putData("student", new Gson().toJson(studentBean)); |
186 | startActivity(intent); | 186 | startActivity(intent); |
187 | } | 187 | } |
188 | setResult(RESULT_OK); | ||
188 | finish(); | 189 | finish(); |
189 | } | 190 | } |
190 | } | 191 | } |
191 | } | 192 | } |
192 | } | 193 | } |
193 | 194 |
app/src/main/res/drawable/png_ic_change_student.png
2.88 KB
app/src/main/res/layout/activity_student_homework.xml
1 | <?xml version="1.0" encoding="utf-8"?> | 1 | <?xml version="1.0" encoding="utf-8"?> |
2 | <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" | 2 | <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" |
3 | xmlns:app="http://schemas.android.com/apk/res-auto" | 3 | xmlns:app="http://schemas.android.com/apk/res-auto" |
4 | xmlns:tools="http://schemas.android.com/tools" | 4 | xmlns:tools="http://schemas.android.com/tools" |
5 | android:orientation="vertical" | 5 | android:orientation="vertical" |
6 | android:layout_width="match_parent" | 6 | android:layout_width="match_parent" |
7 | android:layout_height="match_parent" | 7 | android:layout_height="match_parent" |
8 | tools:ignore="HardcodedText"> | 8 | tools:ignore="HardcodedText"> |
9 | 9 | ||
10 | <androidx.appcompat.widget.Toolbar | 10 | <androidx.appcompat.widget.Toolbar |
11 | android:id="@+id/toolbar" | 11 | android:id="@+id/toolbar" |
12 | app:navigationIcon="@drawable/svg_back" | 12 | app:navigationIcon="@drawable/svg_back" |
13 | android:paddingStart="-8dp" | 13 | android:paddingStart="-8dp" |
14 | android:paddingEnd="-8dp" | 14 | android:paddingEnd="-8dp" |
15 | android:background="@color/white" | 15 | android:background="@color/white" |
16 | android:layout_width="match_parent" | 16 | android:layout_width="match_parent" |
17 | android:layout_height="40dp"> | 17 | android:layout_height="40dp"> |
18 | <TextView | 18 | <TextView |
19 | android:id="@+id/tvTitle" | 19 | android:id="@+id/tvTitle" |
20 | tools:text="小明的全部作业" | 20 | tools:text="小明的全部作业" |
21 | android:textSize="18sp" | 21 | android:textSize="18sp" |
22 | android:textColor="#333" | 22 | android:textColor="#333" |
23 | android:textStyle="bold" | 23 | android:textStyle="bold" |
24 | android:layout_gravity="center" | 24 | android:layout_gravity="center" |
25 | android:layout_width="wrap_content" | 25 | android:layout_width="wrap_content" |
26 | android:layout_height="wrap_content"/> | 26 | android:layout_height="wrap_content"/> |
27 | <ImageView | ||
28 | android:id="@+id/btnChangeStudent" | ||
29 | android:src="@drawable/png_ic_change_student" | ||
30 | android:layout_gravity="end" | ||
31 | android:layout_marginEnd="24dp" | ||
32 | android:layout_width="20dp" | ||
33 | android:layout_height="20dp"/> | ||
27 | </androidx.appcompat.widget.Toolbar> | 34 | </androidx.appcompat.widget.Toolbar> |
28 | <LinearLayout | 35 | <LinearLayout |
29 | android:orientation="horizontal" | 36 | android:orientation="horizontal" |
30 | android:background="@color/white" | 37 | android:background="@color/white" |
31 | android:paddingHorizontal="15dp" | 38 | android:paddingHorizontal="15dp" |
32 | android:paddingVertical="11dp" | 39 | android:paddingVertical="11dp" |
33 | android:layout_width="match_parent" | 40 | android:layout_width="match_parent" |
34 | android:layout_height="wrap_content"> | 41 | android:layout_height="wrap_content"> |
35 | <androidx.appcompat.widget.AppCompatTextView | 42 | <androidx.appcompat.widget.AppCompatTextView |
36 | android:id="@+id/ftSubject" | 43 | android:id="@+id/ftSubject" |
37 | android:text="学科" | 44 | android:text="学科" |
38 | style="@style/tv_StudentHomeworkFilter"/> | 45 | style="@style/tv_StudentHomeworkFilter"/> |
39 | <Space style="@style/empty_space"/> | 46 | <Space style="@style/empty_space"/> |
40 | <androidx.appcompat.widget.AppCompatTextView | 47 | <androidx.appcompat.widget.AppCompatTextView |
41 | android:id="@+id/ftGrade" | 48 | android:id="@+id/ftGrade" |
42 | android:text="年级" | 49 | android:text="年级" |
43 | style="@style/tv_StudentHomeworkFilter"/> | 50 | style="@style/tv_StudentHomeworkFilter"/> |
44 | <Space style="@style/empty_space"/> | 51 | <Space style="@style/empty_space"/> |
45 | <androidx.appcompat.widget.AppCompatTextView | 52 | <androidx.appcompat.widget.AppCompatTextView |
46 | android:id="@+id/ftTerm" | 53 | android:id="@+id/ftTerm" |
47 | android:text="学期" | 54 | android:text="学期" |
48 | style="@style/tv_StudentHomeworkFilter"/> | 55 | style="@style/tv_StudentHomeworkFilter"/> |
49 | <Space style="@style/empty_space"/> | 56 | <Space style="@style/empty_space"/> |
50 | <androidx.appcompat.widget.AppCompatTextView | 57 | <androidx.appcompat.widget.AppCompatTextView |
51 | android:id="@+id/ftFeedback" | 58 | android:id="@+id/ftFeedback" |
52 | android:text="反馈状态" | 59 | android:text="反馈状态" |
53 | style="@style/tv_StudentHomeworkFilter"/> | 60 | style="@style/tv_StudentHomeworkFilter"/> |
54 | </LinearLayout> | 61 | </LinearLayout> |
55 | <androidx.legacy.widget.Space | 62 | <androidx.legacy.widget.Space |
56 | android:id="@+id/anchorView" | 63 | android:id="@+id/anchorView" |
57 | android:layout_width="0dp" | 64 | android:layout_width="0dp" |
58 | android:layout_height="0dp"/> | 65 | android:layout_height="0dp"/> |
59 | 66 | ||
60 | <androidx.recyclerview.widget.RecyclerView | 67 | <androidx.recyclerview.widget.RecyclerView |
61 | android:id="@+id/recyclerView" | 68 | android:id="@+id/recyclerView" |
62 | android:background="#F8F8F8" | 69 | android:background="#F8F8F8" |
63 | android:orientation="vertical" | 70 | android:orientation="vertical" |
64 | app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" | 71 | app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" |
65 | android:layout_width="match_parent" | 72 | android:layout_width="match_parent" |
66 | android:layout_height="match_parent"/> | 73 | android:layout_height="match_parent"/> |
67 | </LinearLayout> | 74 | </LinearLayout> |