Commit 8d5120ae7579dc17aff887ce1460bfdfb35ae22d

Authored by shixianjie
1 parent 2d8005994d
Exists in master

查看题目详情

app/src/main/java/com/hjx/parent/HomeworkTopicActivity.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.res.ColorStateList; 4 import android.content.res.ColorStateList;
5 import android.os.Bundle; 5 import android.os.Bundle;
6 import android.view.View;
6 import android.widget.TextView; 7 import android.widget.TextView;
7 8
8 import androidx.annotation.NonNull; 9 import androidx.annotation.NonNull;
9 import androidx.annotation.Nullable; 10 import androidx.annotation.Nullable;
10 11
11 import com.bumptech.glide.Glide; 12 import com.bumptech.glide.Glide;
12 import com.chad.library.adapter.base.BaseQuickAdapter; 13 import com.chad.library.adapter.base.BaseQuickAdapter;
13 import com.chad.library.adapter.base.BaseViewHolder; 14 import com.chad.library.adapter.base.BaseViewHolder;
14 import com.google.gson.Gson; 15 import com.google.gson.Gson;
15 import com.hjx.parent.databinding.ActivityTopicDetailBinding; 16 import com.hjx.parent.databinding.ActivityTopicDetailBinding;
16 import com.hjx.parent.rx.BaseRxActivity; 17 import com.hjx.parent.rx.BaseRxActivity;
17 import com.prws.common.bean.homework.HomeWork; 18 import com.prws.common.bean.homework.HomeWork;
18 import com.prws.common.bean.homework.KeyValue; 19 import com.prws.common.bean.homework.KeyValue;
19 20
20 import java.util.ArrayList; 21 import java.util.ArrayList;
21 import java.util.List; 22 import java.util.List;
22 23
23 public class HomeworkTopicActivity extends BaseRxActivity<ActivityTopicDetailBinding> { 24 public class HomeworkTopicActivity extends BaseRxActivity<ActivityTopicDetailBinding> {
24 private ArrayList<HomeWork> mList; 25 private ArrayList<HomeWork> mList;
25 private int position; 26 private int position;
26 27
27 @SuppressWarnings("unchecked") 28 @SuppressWarnings("unchecked")
28 @Override 29 @Override
29 public void initView(Bundle savedInstanceState) { 30 public void initView(Bundle savedInstanceState) {
30 mList = (ArrayList<HomeWork>) getIntent().getSerializableExtra("list"); 31 mList = (ArrayList<HomeWork>) getIntent().getSerializableExtra("list");
31 position = getIntent().getIntExtra("position", 0); 32 position = getIntent().getIntExtra("position", 0);
32 binding.toolbar.setNavigationOnClickListener(v -> onBackPressed()); 33 binding.toolbar.setNavigationOnClickListener(v -> onBackPressed());
33 NumberAdapter adapter = new NumberAdapter(mList); 34 NumberAdapter adapter = new NumberAdapter(mList);
34 binding.rvNumber.setAdapter(adapter); 35 binding.rvNumber.setAdapter(adapter);
35 36
37 binding.btnPre.setOnClickListener(v -> showTopic(position - 1));
38 binding.btnNext.setOnClickListener(v -> showTopic(position + 1));
39 adapter.setOnItemChildClickListener((baseQuickAdapter, view, i) -> {
40 if (position == 1) return;
41 showTopic(i);
42 });
36 showTopic(position); 43 showTopic(position);
37 } 44 }
38 45
39 @SuppressLint("SetTextI18n") 46 @SuppressLint("SetTextI18n")
40 private void showTopic(int position) { 47 private void showTopic(int position) {
41 if (position < 0 || position >= mList.size()) return; 48 if (position < 0 || position >= mList.size()) return;
42 this.position = position; 49 this.position = position;
43 binding.btnPre.setEnabled(position > 0); 50 binding.btnPre.setEnabled(position > 0);
44 binding.btnNext.setEnabled(position < mList.size() - 1); 51 binding.btnNext.setEnabled(position < mList.size() - 1);
45 binding.tvTitle.setText((position + 1) + "/" + mList.size()); 52 binding.tvTitle.setText((position + 1) + "/" + mList.size());
46 binding.tvNo.setText("题目" + (position + 1)); 53 binding.tvNo.setText("题目" + (position + 1));
47 54
48 HomeWork homeWork = mList.get(position); 55 HomeWork homeWork = mList.get(position);
49 Glide.with(this).load(homeWork.url).into(binding.ivTopic); 56 Glide.with(this).load(homeWork.url).into(binding.ivTopic);
50 Glide.with(this).load(homeWork.analyseUrl).into(binding.ivAnalyse); 57 Glide.with(this).load(homeWork.analyseUrl).into(binding.ivAnalyse);
51 String answer = homeWork.answer == null ? "" : homeWork.answer 58 String answer = homeWork.answer == null ? "" : homeWork.answer
52 .replace("<br />", "\n") 59 .replace("<br />", "\n")
53 .replace("${", "") 60 .replace("${", "")
54 .replace("}$", ""); 61 .replace("}$", "");
55 binding.tvAnswer.setText(answer); 62 binding.tvAnswer.setText(answer);
56 if (homeWork.pointsObj == null) homeWork.formatPoints(new Gson()); 63 if (homeWork.pointsObj == null) homeWork.formatPoints(new Gson());
57 StringBuilder pointBuilder = new StringBuilder(); 64 StringBuilder pointBuilder = new StringBuilder();
58 for (KeyValue point: homeWork.pointsObj) { 65 for (KeyValue point: homeWork.pointsObj) {
59 pointBuilder.append("\n").append(point.Value); 66 pointBuilder.append("\n").append(point.Value);
60 } 67 }
61 binding.tvPoint.setText(homeWork.pointsObj.size() == 0 ? "" : pointBuilder.substring(1)); 68 binding.tvPoint.setText(homeWork.pointsObj.size() == 0 ? "" : pointBuilder.substring(1));
62 } 69 }
63 70
64 @Override 71 @Override
65 protected ActivityTopicDetailBinding getViewBinding() { 72 protected ActivityTopicDetailBinding getViewBinding() {
66 return ActivityTopicDetailBinding.inflate(getLayoutInflater()); 73 return ActivityTopicDetailBinding.inflate(getLayoutInflater());
67 } 74 }
68 75
69 static class NumberAdapter extends BaseQuickAdapter<HomeWork, BaseViewHolder> { 76 static class NumberAdapter extends BaseQuickAdapter<HomeWork, BaseViewHolder> {
70 77
71 public NumberAdapter(@Nullable List<HomeWork> data) { 78 public NumberAdapter(@Nullable List<HomeWork> data) {
72 super(R.layout.item_topic_number, data); 79 super(R.layout.item_topic_number, data);
73 } 80 }
74 81
75 @Override 82 @Override
76 protected void convert(@NonNull BaseViewHolder holder, HomeWork homeWork) { 83 protected void convert(@NonNull BaseViewHolder holder, HomeWork homeWork) {
77 TextView textView = (TextView) holder.itemView; 84 TextView textView = (TextView) holder.itemView;
78 textView.setText(String.valueOf(getData().indexOf(homeWork) + 1)); 85 textView.setText(String.valueOf(getData().indexOf(homeWork) + 1));
79 86
80 int color = homeWork.check ? 0xFFFF4133 : 0xFF4ABC78; 87 int color = homeWork.check ? 0xFFFF4133 : 0xFF4ABC78;
81 textView.setBackgroundTintList(ColorStateList.valueOf(color)); 88 textView.setBackgroundTintList(ColorStateList.valueOf(color));
82 } 89 }
83 } 90 }
84 } 91 }
85 92