package com.hjx.parent; import android.annotation.SuppressLint; import android.content.Intent; import android.content.res.ColorStateList; import android.os.Bundle; import android.view.View; import android.widget.ImageView; import android.widget.RadioGroup; import android.widget.TextView; 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.hjx.parent.databinding.ActivityHomeworkSelectBinding; import com.hjx.parent.function.Function0; 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.util.ArrayList; public class HomeworkSelectActivity extends BaseRxActivity { private Student student; private HomeworkList mData; private ArrayList mList; private Adapter mAdapter = new Adapter(); @SuppressLint("NotifyDataSetChanged") @SuppressWarnings("unchecked,ConstantConditions") @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"); if (mList == null) mList = new ArrayList<>(); for (HomeWork homeWork: mList) { homeWork.correction = 0; } mAdapter.setNewData(mList); binding.recyclerView.setAdapter(mAdapter); mAdapter.selectCall = () -> { int right = 0, error = 0, blank = 0; for (HomeWork homeWork: mList) { if (homeWork.correction == 0) right ++; else if (homeWork.correction == 1) error ++; else if (homeWork.correction == 2) blank ++; } binding.tvNumber.setText(String.valueOf(error)); binding.tvBlankNumber.setText(String.valueOf(blank)); // if (right == mList.size()) { // binding.btnConfirm.setText("作业全对"); // binding.btnConfirm.setBackgroundTintList(ColorStateList.valueOf(0xFF4ABC78)); // } else { // binding.btnConfirm.setText("下一步"); // binding.btnConfirm.setBackgroundTintList(ColorStateList.valueOf(0xFF1C90F3)); // } }; binding.btnConfirm.setOnClickListener(v -> { Intent intent = new Intent(this, HomeworkFeedbackActivity.class); intent.putExtra("data", mData); intent.putExtra("list", mList); intent.putExtra("student", student); startActivityForResult(intent, 0xA01); }); } @Override protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == 0xA01 && resultCode == RESULT_OK) { setResult(RESULT_OK); finish(); } } @Override protected ActivityHomeworkSelectBinding getViewBinding() { return ActivityHomeworkSelectBinding.inflate(getLayoutInflater()); } static class Adapter extends BaseQuickAdapter { public Adapter() { super(R.layout.item_homework_detail); } public Function0 selectCall; @SuppressLint("SetTextI18n") @Override protected void convert(@NonNull BaseViewHolder holder, HomeWork homeWork) { TextView tvNumber = holder.getView(R.id.tvNumber); ImageView imageView = holder.getView(R.id.ivTopic); int number = getData().indexOf(homeWork) + 1; tvNumber.setText("第" + number + "题"); Glide.with(mContext).load(homeWork.url).into(imageView); setBackground(homeWork, holder); RadioGroup radioGroup = holder.getView(R.id.radioGroup); radioGroup.setVisibility(View.VISIBLE); radioGroup.setOnCheckedChangeListener((group, checkedId) -> { if (checkedId == R.id.rbRight) homeWork.correction = 0; else if (checkedId == R.id.rbError) homeWork.correction = 1; else if (checkedId == R.id.rbBlank) homeWork.correction = 2; setBackground(homeWork, holder); selectCall.invoke(); }); } private void setBackground(HomeWork homeWork, BaseViewHolder helper) { if (homeWork.correction == 0) { helper.setBackgroundRes(R.id.root, R.drawable.bg_feedback_right); helper.setChecked(R.id.rbRight, true); } else if (homeWork.correction == 1) { helper.setBackgroundRes(R.id.root, R.drawable.bg_feedback_error); helper.setChecked(R.id.rbError, true); } else if (homeWork.correction == 2) { helper.setBackgroundRes(R.id.root, R.drawable.bg_feedback_blank); helper.setChecked(R.id.rbBlank, true); } } } }