From 2d8005994d5896c255ea5fb35afd4f1ee8725128 Mon Sep 17 00:00:00 2001 From: shixianjie Date: Tue, 8 Oct 2024 11:57:21 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9F=A5=E7=9C=8B=E9=A2=98=E7=9B=AE=E8=AF=A6?= =?UTF-8?q?=E6=83=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/AndroidManifest.xml | 1 + .../com/hjx/parent/HomeworkFeedbackActivity.java | 17 +- .../java/com/hjx/parent/HomeworkTopicActivity.java | 84 +++++++++ app/src/main/res/color/color_btn_pre_state.xml | 5 + app/src/main/res/drawable/ic_analyse.xml | 5 + app/src/main/res/drawable/png_ic_analyse.png | Bin 0 -> 2921 bytes app/src/main/res/drawable/svg_pre.xml | 10 ++ .../main/res/layout/activity_homework_feedback.xml | 1 + app/src/main/res/layout/activity_topic_detail.xml | 189 +++++++++++++++++++++ app/src/main/res/layout/item_topic_number.xml | 16 ++ 10 files changed, 327 insertions(+), 1 deletion(-) create mode 100644 app/src/main/java/com/hjx/parent/HomeworkTopicActivity.java create mode 100644 app/src/main/res/color/color_btn_pre_state.xml create mode 100644 app/src/main/res/drawable/ic_analyse.xml create mode 100644 app/src/main/res/drawable/png_ic_analyse.png create mode 100644 app/src/main/res/drawable/svg_pre.xml create mode 100644 app/src/main/res/layout/activity_topic_detail.xml create mode 100644 app/src/main/res/layout/item_topic_number.xml 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 zcmV-v3zqbWP)Px=BS}O-RA@uhT6uI-)fxZYx6HhmiIRma3!rGkh(HWzAp~4N77uzV7#E5lisCt_ z1yO6&T9md&DiDaMl@=o^tvf126N6w?kRkyJ5>yV7P=gSNS!R9Py*>B6nMs1eyrIUz z_utIB+wXqg_xqOj2u?6d#;_j* zpNNuBMvgYr)XqCQ(tb|Tn`SQ!j1nlD!~~2YviCge+*AjnCcr4b*iVZiwi+P-5kLe9 zAOuVgS1>00wth~^j`$F#JLfD33Tn`HJKQ z)77Vb0LF53u=OA$<8%OG-H9M_Hr>+!Ow`${2qD8y8z2@M4uh#3!Ib(RC34DROg%-N zJ%MS)!DN>N@&(zoof&G<)@(9>wsS2>aKQOV?~-^z989m0*3X$B4zZ$m62d|B@erJs zN_ZHBNPz0242?QV9K@2?$H`C&Ojb!?v_RN90K85nwI8FIKzXr(A-yE~Z^n>Y8bp8r zLUf>&iEuw9KsPS|*PIhEDbO5Yh?q`B^F8J~W0bd>@zdcX}| z=~!E9LguDMfI}?|TMtt-=?q;Jf={M+aE8wz8U~bXR8dl`TUt*fr1vu{jcS3dvo{8|4V zBD$v7gZ3SzsB5N{Ii@NE1G7X++hLWV=*18kLJq*>l=$x^Zf_~mLXN@k+a8!s@WC`+ ze9pSB47^`!Smq@Q1Tza{qy^k9_yKA0KYB|W6gfk(g+t0YC)ll8N=Mx@Bg$=4E|dPZpo(j=>ugve!1Jy z-j-SeQ_CX=+Bi=rBztLK8zI6);CYw>;mW?NK*n#1Y;)l849vQq$mWO>9*7v2pbGno+rm=FWjKwo{?_2L?Ea! z-0^M%8@@G>l|r!fR$p6`jm~HaG2HN47&R?6%O#Se!SDrJREF&{d^jiFzTu+hgE$yu zSa*X5eY=Y|6kzDLEPxD!;G5Yg_8BPP`?DVt&k}LVMK0`Xq*%07!}kU-v9E}tOc8mR z0w^Uo(+zwdW_Yp2!0TTb@H#YrlLBKJz_yt_^yD#u0{JU~pcMFQnioEWVE18){O5zX zu8)X+Ot$^2p@m||3n8qUpkPq8h=>k6P!&Oa6GhdnJ_L0Jw@5H+br>HVw#mq^+qs@o zNg52d$=noz)swwQ^$;sYJolMR>oW`87QKFX*u<)BI)?WaF|NODW*he!xNC!o?YH|Z z4{ZoAOQRz)1*|A;BNXowexxgQ(#j>4*Es={JQxOC(p|tylRWUbonPBaTQoFA7-o;O zW6REiCLUg|VrqX0#TVH$%wyE`uY}-{+t#i1Q+(6vECWv(45#ODeMCGxL9tlJsXST{ z!M!8hNcGxtI8zxWgCr8j(bSHw%{3kKcJ7gjH)~i{t#=Na@eTQH{&AE7K>#-GH}KpR z4dc&|aN`jBhUZsCud61b)wtcu{}nogo-4(84R8NZ8~ z%fihX=6$SU^#lc1USRu2|78Ij4g)LTXTkk>^Np4evQ* z;$S(T-;exs zf)A(rknSZ=HHP6ULpT&<7R_?!<`A1A3_E6~AUg`UZB8!wBeY_sUJEZwkRn#U889;c~@`Asjg-)#sNN(3!L1ELkuq zGVt;Q1%rD#2eY}>Ktl_|fGnXy<3kh(dZi2TDz&bWTBHyYPRj?rr32^gUdpAs6fW=$J*ud zEpLWVdBDUYMQt_7V;`&7S#Mg^WlZ?tugaA$Ip1c$uNzEo(8qRS>H`dWTj)>kGa3aR zzu1MDMRq*-d$ooc>r_0+i>V?zvJZVeh{h1Z(^o1O(@(M(?~(NplRs&Q_NiDm%pH{tUxT@gZKv?~*P*2P7zdZL2d z9%9@SSAO9vZ8;u8I|9QUKkrO}XRq;CjKs}p?8*>!NBdkHOxYMW3VCWG+C4EzAXb^Z z^ivfJs`VcfSUk;tuh@gkG`rO_r$WV=Z+-?a{3dt20^Z$cK#ewZI7jg) zo$eyIq^AIvNRZ|wsBfmIsyA_l+*Y5&Zq*|JzdTp6l2zWZ`MA!+!LYMb|9{d<`^h{F z;hKtdE00~c{i_WQGS-gzu>*7%8*Q#1@1Rcp=VlfLh+-e{bd~6vv+O1QJwy=CciIFz zCE>>2Y37vpONs2h`()mjohrcMZ=3s+G#5~pubSx{zNtA?>kJ{5t?a3l1h{&D*aS zsohqCka5YrY;v?yXAe5|3ytiOrhG!AO#tlH{plq9+Zh;z^>fm8#M9WU(!dyj(zifF z-)W&COCvN4CQSNvj_-Yb{~dZo{4*0u$s!`V$MGf>qXteXmJ`Hw-5RgtGx==lB0tAu0piPe9fQ#C$<$YTAA5mw^8T68*6B 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 -- 1.9.0