HomeworkFeedbackActivity.java
4.22 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
package com.hjx.parent;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.RadioButton;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.bumptech.glide.Glide;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.google.android.flexbox.FlexboxLayoutManager;
import com.hjx.parent.databinding.ActivityHomeworkFeedbackBinding;
import com.hjx.parent.rx.BaseRxActivity;
import com.prws.common.bean.Student;
import com.prws.common.bean.homework.HomeWork;
import com.prws.common.bean.homework.HomeworkList;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.List;
public class HomeworkFeedbackActivity extends BaseRxActivity<ActivityHomeworkFeedbackBinding> {
private Student student;
private HomeworkList mData;
private ArrayList<HomeWork> mList;
@SuppressWarnings("unchecked")
@Override
public void initView(Bundle savedInstanceState) {
binding.toolbar.setNavigationOnClickListener(v -> onBackPressed());
student = (Student) getIntent().getSerializableExtra("student");
mData = (HomeworkList) getIntent().getSerializableExtra("data");
mList = (ArrayList<HomeWork>) getIntent().getSerializableExtra("list");
binding.tvStuName.setText(student.stuName);
binding.tvGrade.setText(student.grade);
List<HomeWork> errorList = new ArrayList<>();
int correctNo = 0;
for (HomeWork homeWork: mList) {
homeWork.homeworkId = mData.getId();
if (!homeWork.check) correctNo ++;
else errorList.add(homeWork);
}
binding.tvPercent.setText(new DecimalFormat("0%").format(1f * correctNo / mList.size()));
binding.rvCorrect.setLayoutManager(new FlexboxLayoutManager(this));
binding.rvCorrect.setAdapter(new NumberAdapter(mList));
binding.rvError.setVisibility(errorList.isEmpty() ? View.GONE : View.VISIBLE);
binding.rvError.setAdapter(new EvalAdapter(errorList));
}
@Override
protected ActivityHomeworkFeedbackBinding getViewBinding() {
return ActivityHomeworkFeedbackBinding.inflate(getLayoutInflater());
}
static class NumberAdapter extends BaseQuickAdapter<HomeWork, BaseViewHolder> {
public NumberAdapter(List<HomeWork> list) {
super(R.layout.item_feedback_num, list);
}
@Override
protected void convert(@NonNull BaseViewHolder holder, HomeWork homeWork) {
int position = getData().indexOf(homeWork);
holder.setText(R.id.tvNum, String.valueOf(position + 1));
if (homeWork.check) {
holder.setImageResource(R.id.ivType, R.drawable.ic_wrong_small);
} else {
holder.setImageResource(R.id.ivType, R.drawable.ic_correct_small);
}
}
}
static class EvalAdapter extends BaseQuickAdapter<HomeWork, BaseViewHolder> {
public EvalAdapter(@Nullable List<HomeWork> data) {
super(R.layout.item_homework_eval, data);
}
@Override
protected void convert(@NonNull BaseViewHolder holder, HomeWork homeWork) {
holder.itemView.setClipToOutline(true);
holder.setText(R.id.tvNo, "题目" + (homeWork.index + 1));
ImageView iv = holder.getView(R.id.ivTopic);
Glide.with(mContext).load(homeWork.url).into(iv);
RadioButton chk1 = holder.getView(R.id.chk1);
RadioButton chk2 = holder.getView(R.id.chk2);
RadioButton chk3 = holder.getView(R.id.chk3);
chk1.setOnCheckedChangeListener((v, b) -> {
if (b) {
homeWork.state = 1;
}
});
chk2.setOnCheckedChangeListener((v, b) -> {
if (b) {
homeWork.state = 2;
}
});
chk3.setOnCheckedChangeListener((v, b) -> {
if (b) {
homeWork.state = 3;
}
});
chk1.setChecked(homeWork.state == 1);
chk2.setChecked(homeWork.state == 2);
chk3.setChecked(homeWork.state == 3);
}
}
}