Commit 937d37ac8b08ce38db5603ee0c11e407fdb9df98

Authored by shixianjie
1 parent 92afa3a05c
Exists in master

切换学生

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>