Commit 24fb58525d9e00030eba86fef67646e80197de9c

Authored by shixianjie
1 parent 9d34943f45
Exists in master

bugfix

app/src/main/java/com/hjx/parent/HomeworkSelectActivity.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.content.res.ColorStateList; 5 import android.content.res.ColorStateList;
6 import android.os.Bundle; 6 import android.os.Bundle;
7 import android.view.View; 7 import android.view.View;
8 import android.widget.ImageView; 8 import android.widget.ImageView;
9 import android.widget.RadioGroup; 9 import android.widget.RadioGroup;
10 import android.widget.TextView; 10 import android.widget.TextView;
11 11
12 import androidx.annotation.NonNull; 12 import androidx.annotation.NonNull;
13 import androidx.annotation.Nullable; 13 import androidx.annotation.Nullable;
14 14
15 import com.bumptech.glide.Glide; 15 import com.bumptech.glide.Glide;
16 import com.chad.library.adapter.base.BaseQuickAdapter; 16 import com.chad.library.adapter.base.BaseQuickAdapter;
17 import com.chad.library.adapter.base.BaseViewHolder; 17 import com.chad.library.adapter.base.BaseViewHolder;
18 import com.hjx.parent.databinding.ActivityHomeworkSelectBinding; 18 import com.hjx.parent.databinding.ActivityHomeworkSelectBinding;
19 import com.hjx.parent.function.Function0; 19 import com.hjx.parent.function.Function0;
20 import com.hjx.parent.rx.BaseRxActivity; 20 import com.hjx.parent.rx.BaseRxActivity;
21 import com.prws.common.bean.Student; 21 import com.prws.common.bean.Student;
22 import com.prws.common.bean.homework.HomeWork; 22 import com.prws.common.bean.homework.HomeWork;
23 import com.prws.common.bean.homework.HomeworkList; 23 import com.prws.common.bean.homework.HomeworkList;
24 24
25 import java.util.ArrayList; 25 import java.util.ArrayList;
26 26
27 public class HomeworkSelectActivity extends BaseRxActivity<ActivityHomeworkSelectBinding> { 27 public class HomeworkSelectActivity extends BaseRxActivity<ActivityHomeworkSelectBinding> {
28 28
29 private Student student; 29 private Student student;
30 private HomeworkList mData; 30 private HomeworkList mData;
31 private ArrayList<HomeWork> mList; 31 private ArrayList<HomeWork> mList;
32 private Adapter mAdapter = new Adapter(); 32 private Adapter mAdapter = new Adapter();
33 33
34 @SuppressLint("NotifyDataSetChanged") 34 @SuppressLint("NotifyDataSetChanged")
35 @SuppressWarnings("unchecked,ConstantConditions") 35 @SuppressWarnings("unchecked,ConstantConditions")
36 @Override 36 @Override
37 public void initView(Bundle savedInstanceState) { 37 public void initView(Bundle savedInstanceState) {
38 binding.toolbar.setNavigationOnClickListener(v -> onBackPressed()); 38 binding.toolbar.setNavigationOnClickListener(v -> onBackPressed());
39 student = (Student) getIntent().getSerializableExtra("student"); 39 student = (Student) getIntent().getSerializableExtra("student");
40 mData = (HomeworkList) getIntent().getSerializableExtra("data"); 40 mData = (HomeworkList) getIntent().getSerializableExtra("data");
41 mList = (ArrayList<HomeWork>) getIntent().getSerializableExtra("list"); 41 mList = (ArrayList<HomeWork>) getIntent().getSerializableExtra("list");
42 if (mList == null) mList = new ArrayList<>(); 42 if (mList == null) mList = new ArrayList<>();
43 for (HomeWork homeWork: mList) { 43 for (HomeWork homeWork: mList) {
44 homeWork.correction = 0; 44 homeWork.correction = 0;
45 } 45 }
46 46
47 mAdapter.setNewData(mList); 47 mAdapter.setNewData(mList);
48 binding.recyclerView.setAdapter(mAdapter); 48 binding.recyclerView.setAdapter(mAdapter);
49 49
50 mAdapter.selectCall = () -> { 50 mAdapter.selectCall = () -> {
51 int right = 0, error = 0, blank = 0; 51 int right = 0, error = 0, blank = 0;
52 for (HomeWork homeWork: mList) { 52 for (HomeWork homeWork: mList) {
53 if (homeWork.correction == 0) right ++; 53 if (homeWork.correction == 0) right ++;
54 else if (homeWork.correction == 1) error ++; 54 else if (homeWork.correction == 1) error ++;
55 else if (homeWork.correction == 2) blank ++; 55 else if (homeWork.correction == 2) blank ++;
56 } 56 }
57 binding.tvNumber.setText(String.valueOf(error)); 57 binding.tvNumber.setText(String.valueOf(error));
58 binding.tvBlankNumber.setText(String.valueOf(blank)); 58 binding.tvBlankNumber.setText(String.valueOf(blank));
59 // if (right == mList.size()) { 59 // if (right == mList.size()) {
60 // binding.btnConfirm.setText("作业全对"); 60 // binding.btnConfirm.setText("作业全对");
61 // binding.btnConfirm.setBackgroundTintList(ColorStateList.valueOf(0xFF4ABC78)); 61 // binding.btnConfirm.setBackgroundTintList(ColorStateList.valueOf(0xFF4ABC78));
62 // } else { 62 // } else {
63 // binding.btnConfirm.setText("下一步"); 63 // binding.btnConfirm.setText("下一步");
64 // binding.btnConfirm.setBackgroundTintList(ColorStateList.valueOf(0xFF1C90F3)); 64 // binding.btnConfirm.setBackgroundTintList(ColorStateList.valueOf(0xFF1C90F3));
65 // } 65 // }
66 }; 66 };
67 67
68 binding.btnConfirm.setOnClickListener(v -> { 68 binding.btnConfirm.setOnClickListener(v -> {
69 Intent intent = new Intent(this, HomeworkFeedbackActivity.class); 69 Intent intent = new Intent(this, HomeworkFeedbackActivity.class);
70 intent.putExtra("data", mData); 70 intent.putExtra("data", mData);
71 intent.putExtra("list", mList); 71 intent.putExtra("list", mList);
72 intent.putExtra("student", student); 72 intent.putExtra("student", student);
73 startActivityForResult(intent, 0xA01); 73 startActivityForResult(intent, 0xA01);
74 }); 74 });
75 } 75 }
76 76
77 @Override 77 @Override
78 protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { 78 protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
79 super.onActivityResult(requestCode, resultCode, data); 79 super.onActivityResult(requestCode, resultCode, data);
80 if (requestCode == 0xA01 && resultCode == RESULT_OK) { 80 if (requestCode == 0xA01 && resultCode == RESULT_OK) {
81 setResult(RESULT_OK); 81 setResult(RESULT_OK);
82 finish(); 82 finish();
83 } 83 }
84 } 84 }
85 85
86 @Override 86 @Override
87 protected ActivityHomeworkSelectBinding getViewBinding() { 87 protected ActivityHomeworkSelectBinding getViewBinding() {
88 return ActivityHomeworkSelectBinding.inflate(getLayoutInflater()); 88 return ActivityHomeworkSelectBinding.inflate(getLayoutInflater());
89 } 89 }
90 90
91 91
92 static class Adapter extends BaseQuickAdapter<HomeWork, BaseViewHolder> { 92 static class Adapter extends BaseQuickAdapter<HomeWork, BaseViewHolder> {
93 public Adapter() { 93 public Adapter() {
94 super(R.layout.item_homework_detail); 94 super(R.layout.item_homework_detail);
95 } 95 }
96 public Function0 selectCall; 96 public Function0 selectCall;
97 97
98 @SuppressLint("SetTextI18n") 98 @SuppressLint("SetTextI18n")
99 @Override 99 @Override
100 protected void convert(@NonNull BaseViewHolder holder, HomeWork homeWork) { 100 protected void convert(@NonNull BaseViewHolder holder, HomeWork homeWork) {
101 TextView tvNumber = holder.getView(R.id.tvNumber); 101 TextView tvNumber = holder.getView(R.id.tvNumber);
102 ImageView imageView = holder.getView(R.id.ivTopic); 102 ImageView imageView = holder.getView(R.id.ivTopic);
103 int number = getData().indexOf(homeWork) + 1; 103 int number = getData().indexOf(homeWork) + 1;
104 tvNumber.setText("第" + number + "题"); 104 tvNumber.setText("第" + number + "题");
105 Glide.with(mContext).load(homeWork.url).into(imageView); 105 Glide.with(mContext).load(homeWork.url).into(imageView);
106 106
107 setBackground(homeWork, holder);
108 RadioGroup radioGroup = holder.getView(R.id.radioGroup); 107 RadioGroup radioGroup = holder.getView(R.id.radioGroup);
109 radioGroup.setVisibility(View.VISIBLE); 108 radioGroup.setVisibility(View.VISIBLE);
109 radioGroup.setOnCheckedChangeListener(null);
110 setBackground(homeWork, holder);
110 111
111 radioGroup.setOnCheckedChangeListener((group, checkedId) -> { 112 radioGroup.setOnCheckedChangeListener((group, checkedId) -> {
112 if (checkedId == R.id.rbRight) homeWork.correction = 0; 113 if (checkedId == R.id.rbRight) homeWork.correction = 0;
113 else if (checkedId == R.id.rbError) homeWork.correction = 1; 114 else if (checkedId == R.id.rbError) homeWork.correction = 1;
114 else if (checkedId == R.id.rbBlank) homeWork.correction = 2; 115 else if (checkedId == R.id.rbBlank) homeWork.correction = 2;
115 setBackground(homeWork, holder); 116 setBackground(homeWork, holder);
116 selectCall.invoke(); 117 selectCall.invoke();
117 }); 118 });
118 } 119 }
119 120
120 private void setBackground(HomeWork homeWork, BaseViewHolder helper) { 121 private void setBackground(HomeWork homeWork, BaseViewHolder helper) {
121 if (homeWork.correction == 0) { 122 if (homeWork.correction == 0) {
122 helper.setBackgroundRes(R.id.root, R.drawable.bg_feedback_right); 123 helper.setBackgroundRes(R.id.root, R.drawable.bg_feedback_right);
123 helper.setChecked(R.id.rbRight, true); 124 helper.setChecked(R.id.rbRight, true);
124 } else if (homeWork.correction == 1) { 125 } else if (homeWork.correction == 1) {
125 helper.setBackgroundRes(R.id.root, R.drawable.bg_feedback_error); 126 helper.setBackgroundRes(R.id.root, R.drawable.bg_feedback_error);
126 helper.setChecked(R.id.rbError, true); 127 helper.setChecked(R.id.rbError, true);
127 } else if (homeWork.correction == 2) { 128 } else if (homeWork.correction == 2) {
128 helper.setBackgroundRes(R.id.root, R.drawable.bg_feedback_blank); 129 helper.setBackgroundRes(R.id.root, R.drawable.bg_feedback_blank);
129 helper.setChecked(R.id.rbBlank, true); 130 helper.setChecked(R.id.rbBlank, true);
130 } 131 }
131 } 132 }
132 } 133 }
133 } 134 }