Commit 24fb58525d9e00030eba86fef67646e80197de9c
1 parent
9d34943f45
Exists in
master
bugfix
Showing
1 changed file
with
2 additions
and
1 deletions
Show diff stats
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 | } |