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.CheckBox; import android.widget.ImageView; import android.widget.TextView; import androidx.annotation.NonNull; import androidx.lifecycle.MutableLiveData; 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.Function1; 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(); MutableLiveData selectNum = new MutableLiveData<>(0); @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"); mAdapter.setNewData(mList); binding.recyclerView.setAdapter(mAdapter); mAdapter.selectCall = i -> selectNum.setValue(selectNum.getValue() + i); selectNum.observe(this, i -> { binding.tvNumber.setText(String.valueOf(i)); if (i == 0) { binding.btnConfirm.setText("作业全对"); binding.btnConfirm.setBackgroundTintList(ColorStateList.valueOf(0xFF4ABC78)); } else { binding.btnConfirm.setText("下一步"); binding.btnConfirm.setBackgroundTintList(ColorStateList.valueOf(0xFF1C90F3)); } binding.chkAll.setChecked(i == mList.size() && i != 0); }); binding.chkAll.setOnClickListener(v -> { if (mList.size() == 0) return; boolean b = binding.chkAll.isChecked(); for (HomeWork item: mList) { item.check = b; } selectNum.setValue(b ? mList.size() : 0); mAdapter.notifyDataSetChanged(); }); binding.btnConfirm.setOnClickListener(v -> { Intent intent = new Intent(this, HomeworkFeedbackActivity.class); intent.putExtra("data", mData); intent.putExtra("list", mList); intent.putExtra("student", student); startActivity(intent); }); } @Override protected ActivityHomeworkSelectBinding getViewBinding() { return ActivityHomeworkSelectBinding.inflate(getLayoutInflater()); } static class Adapter extends BaseQuickAdapter { public Adapter() { super(R.layout.item_homework_detail); } public Function1 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); CheckBox checkBox = holder.getView(R.id.checkbox); checkBox.setVisibility(View.VISIBLE); checkBox.setOnCheckedChangeListener(null); checkBox.setChecked(homeWork.check); holder.itemView.setOnClickListener(v -> checkBox.performClick()); checkBox.setOnCheckedChangeListener((v, b) -> { homeWork.check = b; if (selectCall != null) { selectCall.invoke(b ? 1 : -1); } }); } } }