package com.hjx.parent; import android.annotation.SuppressLint; import android.content.res.ColorStateList; import android.os.Bundle; import android.view.View; 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.google.gson.Gson; import com.hjx.parent.databinding.ActivityTopicDetailBinding; import com.hjx.parent.rx.BaseRxActivity; import com.prws.common.bean.homework.HomeWork; import com.prws.common.bean.homework.KeyValue; import java.util.ArrayList; import java.util.List; public class HomeworkTopicActivity extends BaseRxActivity { private ArrayList mList; private int position; @SuppressWarnings("unchecked") @Override public void initView(Bundle savedInstanceState) { mList = (ArrayList) getIntent().getSerializableExtra("list"); position = getIntent().getIntExtra("position", 0); binding.toolbar.setNavigationOnClickListener(v -> onBackPressed()); NumberAdapter adapter = new NumberAdapter(mList); binding.rvNumber.setAdapter(adapter); binding.btnPre.setOnClickListener(v -> showTopic(position - 1)); binding.btnNext.setOnClickListener(v -> showTopic(position + 1)); adapter.setOnItemClickListener((baseQuickAdapter, view, i) -> { if (position == i) return; showTopic(i); }); showTopic(position); } @SuppressLint("SetTextI18n") private void showTopic(int position) { if (position < 0 || position >= mList.size()) return; this.position = position; binding.btnPre.setEnabled(position > 0); binding.btnNext.setEnabled(position < mList.size() - 1); binding.tvTitle.setText((position + 1) + "/" + mList.size()); binding.tvNo.setText("题目" + (position + 1)); HomeWork homeWork = mList.get(position); Glide.with(this).load(homeWork.url).into(binding.ivTopic); Glide.with(this).load(homeWork.analyseUrl).into(binding.ivAnalyse); String answer = homeWork.answer == null ? "" : homeWork.answer .replace("
", "\n") .replace("${", "") .replace("}$", ""); binding.tvAnswer.setText(answer); if (homeWork.pointsObj == null) homeWork.formatPoints(new Gson()); StringBuilder pointBuilder = new StringBuilder(); for (KeyValue point: homeWork.pointsObj) { pointBuilder.append("\n").append(point.Value); } binding.tvPoint.setText(homeWork.pointsObj.size() == 0 ? "" : pointBuilder.substring(1)); } @Override protected ActivityTopicDetailBinding getViewBinding() { return ActivityTopicDetailBinding.inflate(getLayoutInflater()); } static class NumberAdapter extends BaseQuickAdapter { public NumberAdapter(@Nullable List data) { super(R.layout.item_topic_number, data); } @Override protected void convert(@NonNull BaseViewHolder holder, HomeWork homeWork) { TextView textView = (TextView) holder.itemView; textView.setText(String.valueOf(getData().indexOf(homeWork) + 1)); int color = homeWork.check ? 0xFFFF4133 : 0xFF4ABC78; textView.setBackgroundTintList(ColorStateList.valueOf(color)); } } }