HomeworkTopicActivity.java
3.47 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
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<ActivityTopicDetailBinding> {
private ArrayList<HomeWork> mList;
private int position;
@SuppressWarnings("unchecked")
@Override
public void initView(Bundle savedInstanceState) {
mList = (ArrayList<HomeWork>) 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.setOnItemChildClickListener((baseQuickAdapter, view, i) -> {
if (position == 1) 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("<br />", "\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<HomeWork, BaseViewHolder> {
public NumberAdapter(@Nullable List<HomeWork> 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));
}
}
}