Commit 7eb90a5ec115687f5f075028b3dc19d1ec54bda7

Authored by shixianjie
1 parent b49795b72f
Exists in master

作业反馈

... ... @@ -86,4 +86,6 @@ dependencies {
86 86  
87 87 implementation("com.github.PhilJay:MPAndroidChart:v3.1.0")
88 88 implementation("com.contrarywind:Android-PickerView:4.1.9")
  89 +
  90 + implementation 'com.google.android:flexbox:1.0.0'
89 91 }
90 92 \ No newline at end of file
... ...
app/src/main/java/com/hjx/parent/HomeworkFeedbackActivity.java
1 1 package com.hjx.parent;
2 2  
3 3 import android.os.Bundle;
  4 +import android.view.View;
  5 +import android.widget.ImageView;
  6 +import android.widget.RadioButton;
4 7  
  8 +import androidx.annotation.NonNull;
  9 +import androidx.annotation.Nullable;
  10 +
  11 +import com.bumptech.glide.Glide;
  12 +import com.chad.library.adapter.base.BaseQuickAdapter;
  13 +import com.chad.library.adapter.base.BaseViewHolder;
  14 +import com.google.android.flexbox.FlexboxLayoutManager;
5 15 import com.hjx.parent.databinding.ActivityHomeworkFeedbackBinding;
6 16 import com.hjx.parent.rx.BaseRxActivity;
7 17 import com.prws.common.bean.Student;
... ... @@ -10,6 +20,7 @@ import com.prws.common.bean.homework.HomeworkList;
10 20  
11 21 import java.text.DecimalFormat;
12 22 import java.util.ArrayList;
  23 +import java.util.List;
13 24  
14 25 public class HomeworkFeedbackActivity extends BaseRxActivity<ActivityHomeworkFeedbackBinding> {
15 26 private Student student;
... ... @@ -27,16 +38,78 @@ public class HomeworkFeedbackActivity extends BaseRxActivity&lt;ActivityHomeworkFee
27 38 binding.tvStuName.setText(student.stuName);
28 39 binding.tvGrade.setText(student.grade);
29 40  
  41 + List<HomeWork> errorList = new ArrayList<>();
30 42 int correctNo = 0;
31 43 for (HomeWork homeWork: mList) {
32 44 homeWork.homeworkId = mData.getId();
33 45 if (!homeWork.check) correctNo ++;
  46 + else errorList.add(homeWork);
34 47 }
35 48 binding.tvPercent.setText(new DecimalFormat("0%").format(1f * correctNo / mList.size()));
  49 +
  50 + binding.rvCorrect.setLayoutManager(new FlexboxLayoutManager(this));
  51 + binding.rvCorrect.setAdapter(new NumberAdapter(mList));
  52 + binding.rvError.setVisibility(errorList.isEmpty() ? View.GONE : View.VISIBLE);
  53 + binding.rvError.setAdapter(new EvalAdapter(errorList));
36 54 }
37 55  
38 56 @Override
39 57 protected ActivityHomeworkFeedbackBinding getViewBinding() {
40 58 return ActivityHomeworkFeedbackBinding.inflate(getLayoutInflater());
41 59 }
  60 +
  61 + static class NumberAdapter extends BaseQuickAdapter<HomeWork, BaseViewHolder> {
  62 +
  63 + public NumberAdapter(List<HomeWork> list) {
  64 + super(R.layout.item_feedback_num, list);
  65 + }
  66 +
  67 + @Override
  68 + protected void convert(@NonNull BaseViewHolder holder, HomeWork homeWork) {
  69 + int position = getData().indexOf(homeWork);
  70 + holder.setText(R.id.tvNum, String.valueOf(position + 1));
  71 + if (homeWork.check) {
  72 + holder.setImageResource(R.id.ivType, R.drawable.ic_wrong_small);
  73 + } else {
  74 + holder.setImageResource(R.id.ivType, R.drawable.ic_correct_small);
  75 + }
  76 + }
  77 + }
  78 +
  79 + static class EvalAdapter extends BaseQuickAdapter<HomeWork, BaseViewHolder> {
  80 +
  81 + public EvalAdapter(@Nullable List<HomeWork> data) {
  82 + super(R.layout.item_homework_eval, data);
  83 + }
  84 +
  85 + @Override
  86 + protected void convert(@NonNull BaseViewHolder holder, HomeWork homeWork) {
  87 + holder.itemView.setClipToOutline(true);
  88 + holder.setText(R.id.tvNo, "题目" + (homeWork.index + 1));
  89 + ImageView iv = holder.getView(R.id.ivTopic);
  90 + Glide.with(mContext).load(homeWork.url).into(iv);
  91 +
  92 + RadioButton chk1 = holder.getView(R.id.chk1);
  93 + RadioButton chk2 = holder.getView(R.id.chk2);
  94 + RadioButton chk3 = holder.getView(R.id.chk3);
  95 + chk1.setOnCheckedChangeListener((v, b) -> {
  96 + if (b) {
  97 + homeWork.state = 1;
  98 + }
  99 + });
  100 + chk2.setOnCheckedChangeListener((v, b) -> {
  101 + if (b) {
  102 + homeWork.state = 2;
  103 + }
  104 + });
  105 + chk3.setOnCheckedChangeListener((v, b) -> {
  106 + if (b) {
  107 + homeWork.state = 3;
  108 + }
  109 + });
  110 + chk1.setChecked(homeWork.state == 1);
  111 + chk2.setChecked(homeWork.state == 2);
  112 + chk3.setChecked(homeWork.state == 3);
  113 + }
  114 + }
42 115 }
... ...
app/src/main/res/drawable/bg_homework_eval_item.xml
... ... @@ -0,0 +1,5 @@
  1 +<?xml version="1.0" encoding="utf-8"?>
  2 +<shape xmlns:android="http://schemas.android.com/apk/res/android">
  3 + <corners android:radius="5dp"/>
  4 + <stroke android:width="1dp" android:color="#EEEEEE"/>
  5 +</shape>
0 6 \ No newline at end of file
... ...
app/src/main/res/drawable/bg_homework_num.xml
... ... @@ -0,0 +1,6 @@
  1 +<shape xmlns:android="http://schemas.android.com/apk/res/android"
  2 + android:shape="rectangle">
  3 + <corners android:topRightRadius="5dp"
  4 + android:bottomLeftRadius="5dp"/>
  5 + <solid android:color="#489AFA" />
  6 +</shape>
0 7 \ No newline at end of file
... ...
app/src/main/res/drawable/btn_homework_eval1.xml
... ... @@ -0,0 +1,18 @@
  1 +<?xml version="1.0" encoding="utf-8"?>
  2 +<selector xmlns:android="http://schemas.android.com/apk/res/android">
  3 +
  4 + <item android:state_checked="true">
  5 + <shape>
  6 + <corners android:radius="888dp"/>
  7 + <solid android:color="#489AFA"/>
  8 + </shape>
  9 + </item>
  10 +
  11 + <item>
  12 + <shape>
  13 + <corners android:radius="888dp"/>
  14 + <solid android:color="#DCDCDC"/>
  15 + </shape>
  16 + </item>
  17 +
  18 +</selector>
0 19 \ No newline at end of file
... ...
app/src/main/res/drawable/btn_homework_eval2.xml
... ... @@ -0,0 +1,18 @@
  1 +<?xml version="1.0" encoding="utf-8"?>
  2 +<selector xmlns:android="http://schemas.android.com/apk/res/android">
  3 +
  4 + <item android:state_checked="true">
  5 + <shape>
  6 + <corners android:radius="888dp"/>
  7 + <solid android:color="#FF7E00"/>
  8 + </shape>
  9 + </item>
  10 +
  11 + <item>
  12 + <shape>
  13 + <corners android:radius="888dp"/>
  14 + <solid android:color="#DCDCDC"/>
  15 + </shape>
  16 + </item>
  17 +
  18 +</selector>
0 19 \ No newline at end of file
... ...
app/src/main/res/drawable/btn_homework_eval3.xml
... ... @@ -0,0 +1,18 @@
  1 +<?xml version="1.0" encoding="utf-8"?>
  2 +<selector xmlns:android="http://schemas.android.com/apk/res/android">
  3 +
  4 + <item android:state_checked="true">
  5 + <shape>
  6 + <corners android:radius="888dp"/>
  7 + <solid android:color="#FF4133"/>
  8 + </shape>
  9 + </item>
  10 +
  11 + <item>
  12 + <shape>
  13 + <corners android:radius="888dp"/>
  14 + <solid android:color="#DCDCDC"/>
  15 + </shape>
  16 + </item>
  17 +
  18 +</selector>
0 19 \ No newline at end of file
... ...
app/src/main/res/drawable/ic_correct_small.png

1.31 KB

app/src/main/res/drawable/ic_wrong_small.png

1.29 KB

app/src/main/res/layout/activity_homework_feedback.xml
... ... @@ -160,6 +160,7 @@
160 160  
161 161 <androidx.recyclerview.widget.RecyclerView
162 162 android:id="@+id/rvCorrect"
  163 + tools:listitem="@layout/item_feedback_num"
163 164 tools:itemCount="1"
164 165 android:layout_marginTop="15dp"
165 166 android:layout_marginHorizontal="15dp"
... ... @@ -169,13 +170,13 @@
169 170 android:text="错题已经加入到错题本,到错题本查看详情"
170 171 android:textSize="12sp"
171 172 android:textColor="#666"
172   - android:layout_marginTop="15dp"
173 173 android:layout_marginHorizontal="15dp"
174 174 android:layout_width="wrap_content"
175 175 android:layout_height="wrap_content"/>
176 176 </LinearLayout>
177 177  
178 178 <LinearLayout
  179 + android:id="@+id/flEval"
179 180 android:orientation="vertical"
180 181 android:background="@drawable/shape_radius_10"
181 182 android:backgroundTint="@color/white"
... ... @@ -183,7 +184,7 @@
183 184 android:layout_width="match_parent"
184 185 android:layout_height="wrap_content">
185 186 <androidx.appcompat.widget.AppCompatTextView
186   - android:text="作业详情"
  187 + android:text="辅导后错题掌握评估"
187 188 android:textSize="16sp"
188 189 android:textColor="#333"
189 190 android:textStyle="bold"
... ...
app/src/main/res/layout/item_feedback_num.xml
... ... @@ -0,0 +1,22 @@
  1 +<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
  2 + android:layout_width="28dp"
  3 + android:layout_height="28dp"
  4 + android:layout_marginBottom="10dp"
  5 + android:layout_marginEnd="20dp">
  6 +
  7 + <TextView
  8 + android:id="@+id/tvNum"
  9 + android:layout_width="25dp"
  10 + android:layout_height="25dp"
  11 + android:background="@drawable/shape_radius_5"
  12 + android:backgroundTint="#D7EBFF"
  13 + android:gravity="center"
  14 + android:textColor="#4D9CF7"
  15 + android:textSize="18sp" />
  16 +
  17 + <ImageView
  18 + android:id="@+id/ivType"
  19 + android:layout_width="12dp"
  20 + android:layout_height="12dp"
  21 + android:layout_gravity="end|bottom"/>
  22 +</FrameLayout>
0 23 \ No newline at end of file
... ...
app/src/main/res/layout/item_homework_eval.xml
... ... @@ -0,0 +1,93 @@
  1 +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  2 + xmlns:app="http://schemas.android.com/apk/res-auto"
  3 + xmlns:tools="http://schemas.android.com/tools"
  4 + android:orientation="vertical"
  5 + tools:layout_width="280dp"
  6 + android:layout_width="match_parent"
  7 + android:layout_height="wrap_content"
  8 + android:layout_marginHorizontal="16dp"
  9 + android:layout_marginTop="16dp"
  10 + android:background="@drawable/bg_homework_eval_item"
  11 + tools:ignore="HardcodedText,SmallSp">
  12 +
  13 + <FrameLayout
  14 + android:layout_width="match_parent"
  15 + android:layout_height="110dp">
  16 +
  17 + <androidx.constraintlayout.utils.widget.ImageFilterView
  18 + android:id="@+id/ivTopic"
  19 + app:round="10dp"
  20 + android:layout_margin="1dp"
  21 + android:layout_width="match_parent"
  22 + android:layout_height="match_parent" />
  23 +
  24 + <TextView
  25 + android:id="@+id/tvNo"
  26 + tools:text="题目8"
  27 + android:layout_width="40dp"
  28 + android:layout_height="16dp"
  29 + android:layout_gravity="end"
  30 + android:background="@drawable/bg_homework_num"
  31 + android:gravity="center"
  32 + android:textColor="@color/white"
  33 + android:textSize="9sp" />
  34 + </FrameLayout>
  35 +
  36 + <View
  37 + android:background="#EEEEEE"
  38 + android:layout_width="match_parent"
  39 + android:layout_height="1dp"/>
  40 +
  41 + <RadioGroup
  42 + android:id="@+id/chkGroup"
  43 + android:orientation="horizontal"
  44 + android:gravity="center_vertical"
  45 + android:paddingHorizontal="10dp"
  46 + android:layout_width="match_parent"
  47 + android:layout_height="46dp">
  48 +
  49 + <RadioButton
  50 + android:id="@+id/chk1"
  51 + android:text="已听懂"
  52 + android:textSize="12sp"
  53 + android:textColor="@color/white"
  54 + android:gravity="center"
  55 + android:button="@null"
  56 + tools:checked="true"
  57 + android:background="@drawable/btn_homework_eval1"
  58 + android:layout_marginHorizontal="10dp"
  59 + android:layout_weight="1"
  60 + android:layout_width="0dp"
  61 + android:layout_height="25dp" />
  62 +
  63 + <RadioButton
  64 + android:id="@+id/chk2"
  65 + android:text="基本听懂"
  66 + android:textSize="12sp"
  67 + android:textColor="@color/white"
  68 + android:gravity="center"
  69 + android:button="@null"
  70 + tools:checked="true"
  71 + android:background="@drawable/btn_homework_eval2"
  72 + android:layout_marginHorizontal="10dp"
  73 + android:layout_weight="1"
  74 + android:layout_width="0dp"
  75 + android:layout_height="25dp" />
  76 +
  77 + <RadioButton
  78 + android:id="@+id/chk3"
  79 + android:text="一般听懂"
  80 + android:textSize="12sp"
  81 + android:textColor="@color/white"
  82 + android:gravity="center"
  83 + android:button="@null"
  84 + tools:checked="true"
  85 + android:background="@drawable/btn_homework_eval3"
  86 + android:layout_marginHorizontal="10dp"
  87 + android:layout_weight="1"
  88 + android:layout_width="0dp"
  89 + android:layout_height="25dp" />
  90 +
  91 + </RadioGroup>
  92 +
  93 +</LinearLayout>
0 94 \ No newline at end of file
... ...
libs/common/src/main/java/com/prws/common/bean/homework/HomeWork.java
... ... @@ -17,5 +17,7 @@ public class HomeWork implements Serializable {
17 17 public String points;
18 18  
19 19 public boolean check = false;
  20 + public transient int index = 0;
  21 + public transient int state = 1;
20 22  
21 23 }
... ...