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 { private Student student; private HomeworkList mData; private ArrayList 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) getIntent().getSerializableExtra("list"); binding.tvStuName.setText(student.stuName); binding.tvGrade.setText(student.grade); List 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 { public NumberAdapter(List 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 { public EvalAdapter(@Nullable List 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); } } }