diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 03848f7..96f52b9 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -155,6 +155,7 @@
+
{
+ viewTopicDetail(0);
+ });
+ numberAdapter.setOnItemClickListener((baseQuickAdapter, view, i) -> {
+ viewTopicDetail(i);
+ });
binding.btnPublish.setOnClickListener(v -> submit());
}
+ private void viewTopicDetail(int position) {
+ Intent intent = new Intent(this, HomeworkTopicActivity.class);
+ intent.putExtra("list", mList);
+ intent.putExtra("position", position);
+ startActivity(intent);
+ }
+
@SuppressLint("CheckResult")
private void submit() {
Map body = new HashMap<>();
diff --git a/app/src/main/java/com/hjx/parent/HomeworkTopicActivity.java b/app/src/main/java/com/hjx/parent/HomeworkTopicActivity.java
new file mode 100644
index 0000000..3505fbe
--- /dev/null
+++ b/app/src/main/java/com/hjx/parent/HomeworkTopicActivity.java
@@ -0,0 +1,84 @@
+package com.hjx.parent;
+
+import android.annotation.SuppressLint;
+import android.content.res.ColorStateList;
+import android.os.Bundle;
+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);
+
+ 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));
+ }
+ }
+}
diff --git a/app/src/main/res/color/color_btn_pre_state.xml b/app/src/main/res/color/color_btn_pre_state.xml
new file mode 100644
index 0000000..eab0a6a
--- /dev/null
+++ b/app/src/main/res/color/color_btn_pre_state.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_analyse.xml b/app/src/main/res/drawable/ic_analyse.xml
new file mode 100644
index 0000000..e025782
--- /dev/null
+++ b/app/src/main/res/drawable/ic_analyse.xml
@@ -0,0 +1,5 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/png_ic_analyse.png b/app/src/main/res/drawable/png_ic_analyse.png
new file mode 100644
index 0000000000000000000000000000000000000000..3781c03c93b814a6bc334b8f7c6c4d3ce0de3b77
GIT binary patch
literal 2921
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
T4jK5U00000NkvXXu0mjf_t|Rd
literal 0
HcmV?d00001
diff --git a/app/src/main/res/drawable/svg_pre.xml b/app/src/main/res/drawable/svg_pre.xml
new file mode 100644
index 0000000..711cc4d
--- /dev/null
+++ b/app/src/main/res/drawable/svg_pre.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app/src/main/res/layout/activity_homework_feedback.xml b/app/src/main/res/layout/activity_homework_feedback.xml
index feba12b..59fd350 100644
--- a/app/src/main/res/layout/activity_homework_feedback.xml
+++ b/app/src/main/res/layout/activity_homework_feedback.xml
@@ -151,6 +151,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_topic_number.xml b/app/src/main/res/layout/item_topic_number.xml
new file mode 100644
index 0000000..3f49069
--- /dev/null
+++ b/app/src/main/res/layout/item_topic_number.xml
@@ -0,0 +1,16 @@
+
+
+
+
\ No newline at end of file