HomeworkSelectActivity.java
3.76 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
92
93
94
95
96
97
98
99
100
101
102
103
package com.hjx.parent;
import android.annotation.SuppressLint;
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.homework.HomeWork;
import com.prws.common.bean.homework.HomeworkList;
import java.util.ArrayList;
public class HomeworkSelectActivity extends BaseRxActivity<ActivityHomeworkSelectBinding> {
private HomeworkList mData;
private ArrayList<HomeWork> mList;
private Adapter mAdapter = new Adapter();
MutableLiveData<Integer> selectNum = new MutableLiveData<>(0);
@SuppressLint("NotifyDataSetChanged")
@SuppressWarnings("unchecked,ConstantConditions")
@Override
public void initView(Bundle savedInstanceState) {
binding.toolbar.setNavigationOnClickListener(v -> onBackPressed());
mData = (HomeworkList) getIntent().getSerializableExtra("data");
mList = (ArrayList<HomeWork>) 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();
});
}
@Override
protected ActivityHomeworkSelectBinding getViewBinding() {
return ActivityHomeworkSelectBinding.inflate(getLayoutInflater());
}
static class Adapter extends BaseQuickAdapter<HomeWork, BaseViewHolder> {
public Adapter() {
super(R.layout.item_homework_detail);
}
public Function1<Integer> 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);
}
});
}
}
}