Browse Source

ncse量表开发

hurixing 1 year ago
parent
commit
7729f50bf3

+ 5 - 2
ncse/src/main/java/com/yingyangfly/ncse/fragment/FigureInputFragment.kt

@@ -163,14 +163,17 @@ class FigureInputFragment : BaseFragment<FragmentFigureInputBinding>(), View.OnT
                     question!!.correct = ""
                     questionsDao?.update(question!!)
                 }
-                if (questionId == 3) {
+                if (questionId < 88) {
                     questionId++
                     loadData()
                 } else {
                     questionId++
                     val bundle = bundleOf("questionId" to questionId)
                     val controller = Navigation.findNavController(view)
-
+                    controller.navigate(
+                        R.id.action_figureinputFragment_to_selectedItemFragment,
+                        bundle
+                    )
                 }
             }
         }

+ 53 - 3
ncse/src/main/java/com/yingyangfly/ncse/fragment/LookPictureFragment.kt

@@ -2,6 +2,7 @@ package com.yingyangfly.ncse.fragment
 
 import android.annotation.SuppressLint
 import android.os.Bundle
+import android.text.TextUtils
 import android.view.MotionEvent
 import android.view.View
 import androidx.core.os.bundleOf
@@ -10,6 +11,7 @@ import com.yingyangfly.baselib.base.BaseFragment
 import com.yingyangfly.baselib.db.QuestionsBean
 import com.yingyangfly.baselib.ext.getEndAnimation
 import com.yingyangfly.baselib.ext.getScaleAnimation
+import com.yingyangfly.baselib.ext.toast
 import com.yingyangfly.ncse.R
 import com.yingyangfly.ncse.databinding.FragmentLookPictureBinding
 
@@ -32,6 +34,7 @@ class LookPictureFragment : BaseFragment<FragmentLookPictureBinding>(),View.OnTo
         binding {
             btnPrevious.setOnTouchListener(this@LookPictureFragment)
             btnNext.setOnTouchListener(this@LookPictureFragment)
+            tvNotarize.setOnTouchListener(this@LookPictureFragment)
         }
     }
 
@@ -48,12 +51,22 @@ class LookPictureFragment : BaseFragment<FragmentLookPictureBinding>(),View.OnTo
             }
             MotionEvent.ACTION_UP -> {
                 v.startAnimation(getEndAnimation())
-                if (v.id == R.id.btnPrevious) {
+                if (v.id == R.id.tvNotarize){
+                    saveData(v)
+                } else if (v.id == R.id.btnPrevious) {
                     pageUp(v)
                 } else if (v.id == R.id.btnNext) {
-
+                    if (TextUtils.isEmpty(question!!.inputString)){
+                        if (binding.tvDescribe.text.toString().isEmpty()){
+                            val str = "请记录患者的回应!"
+                            str.toast()
+                        } else {
+                            saveData(v)
+                            pageNext(v)
+                        }
+                    }else{
                         pageNext(v)
-
+                    }
                 }
             }
             MotionEvent.ACTION_CANCEL -> {
@@ -65,6 +78,43 @@ class LookPictureFragment : BaseFragment<FragmentLookPictureBinding>(),View.OnTo
         return true
     }
 
+    override fun onResume() {
+        super.onResume()
+        loadData()
+    }
+
+    /**
+     * 加载数据
+     */
+    private fun loadData() {
+        binding.tvDescribe.setText("")
+        if (questionsDao != null) {
+            question = questionsDao?.getQuestion(questionId)
+            if (question != null) {
+                binding.data = question
+                if (question!!.inputString.isNullOrEmpty().not()) {
+                    binding.tvDescribe.post {
+                        binding.tvDescribe.setText(question!!.inputString)
+                    }
+                }
+            }
+        }
+    }
+
+    /**
+     * 确认保存
+     */
+    private fun saveData(v: View){
+        if (question != null){
+            question!!.inputString = binding.tvDescribe.text.toString().trim()
+            question!!.reviewId = question!!.id
+            question!!.reviewAnswer = binding.tvDescribe.text.toString().trim()
+            question!!.correct = ""
+            questionsDao?.update(question!!)
+        }
+    }
+
+
     /**
      * 上一页
      */

+ 7 - 0
ncse/src/main/res/drawable/bg_input_edit.xml

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    tools:ignore="ResourceName">
+    <solid android:color="#FFFFFF"/> <!-- 背景颜色 -->
+    <stroke android:width="2dp" android:color="#000000"/> <!-- 边框宽度和颜色 -->
+</shape>

+ 58 - 0
ncse/src/main/res/layout/fragment_look_picture.xml

@@ -5,10 +5,68 @@
     tools:ignore="ResourceName">
 
 
+    <data>
+
+        <variable
+            name="data"
+            type="com.yingyangfly.baselib.db.QuestionsBean" />
+    </data>
+
+
     <androidx.constraintlayout.widget.ConstraintLayout
         android:layout_width="match_parent"
         android:layout_height="match_parent">
 
+        <TextView
+            android:id="@+id/tvTitle"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="@dimen/divider_27px"
+            android:text="@string/look_at_the_picture_and_describe_it"
+            android:textColor="@color/color_FF222222"
+            android:textSize="@dimen/divider_34px"
+            android:textStyle="bold"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toTopOf="parent" />
+
+        <androidx.appcompat.widget.AppCompatImageView
+            android:id="@+id/tvPicture"
+            android:layout_width="@dimen/divider_520px"
+            android:layout_height="@dimen/divider_359px"
+            android:layout_marginTop="@dimen/divider_57px"
+            android:scaleType="centerInside"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toBottomOf="@+id/tvTitle"
+            app:loadImg="@{data.reviewDesc}" />
+
+        <androidx.appcompat.widget.AppCompatEditText
+            android:id="@+id/tvDescribe"
+            android:layout_width="@dimen/divider_400px"
+            android:layout_height="@dimen/divider_250px"
+            android:layout_marginTop="@dimen/divider_57px"
+            android:layout_marginEnd="@dimen/divider_154px"
+            android:background="@drawable/bg_input_edit"
+            android:hint="@string/fragment_look_picture_input"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintTop_toBottomOf="@+id/tvTitle" />
+
+        <androidx.appcompat.widget.AppCompatButton
+            android:id="@+id/tvNotarize"
+            android:layout_width="@dimen/divider_400px"
+            android:layout_height="@dimen/divider_55px"
+            android:layout_marginTop="@dimen/divider_57px"
+            android:layout_marginEnd="@dimen/divider_154px"
+            android:background="@drawable/bg_next_question"
+            android:gravity="center"
+            android:text="@string/notarize"
+            android:textColor="@android:color/white"
+            android:textSize="@dimen/divider_28px"
+            android:textStyle="bold"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintTop_toBottomOf="@+id/tvDescribe"/>
+
+
         <androidx.appcompat.widget.AppCompatButton
             android:id="@+id/btnPrevious"
             android:layout_width="@dimen/divider_240px"

+ 2 - 0
ncse/src/main/res/values/colors.xml

@@ -13,4 +13,6 @@
     <color name="color_FFC1D0FF" tools:ignore="ResourceName">#FFC1D0FF</color>
     <color name="color_FFC5D3FF" tools:ignore="ResourceName">#FFC5D3FF</color>
     <color name="color_FF7684FA" tools:ignore="ResourceName">#FF7684FA</color>
+    <color name="color_FFB8B3B3" tools:ignore="ResourceName">#FFB8B3B3</color>
+    <color name="color_000000" tools:ignore="ResourceName">#000000</color>
 </resources>

+ 3 - 0
ncse/src/main/res/values/strings.xml

@@ -11,6 +11,9 @@
     <string name="you_will_hear_a_sentence_please_reply_clearly_after_listening" tools:ignore="ResourceName">您将听到一段数字,听完后请您清楚的复述</string>
     <string name="click_play" tools:ignore="ResourceName">点击播放</string>
     <string name="please_name_animals_in_the_picture" tools:ignore="ResourceName">请您说出图片中物品的名称</string>
+    <string name="look_at_the_picture_and_describe_it" tools:ignore="ResourceName">看图进行描述</string>
     <string name="may_i_ask_if_subjects_correctly_name_animals_picture" tools:ignore="ResourceName">请问受试者是否正确说出图中物品的名称</string>
     <string name="previous_page" tools:ignore="ResourceName">上一页</string>
+    <string name="fragment_look_picture_input" tools:ignore="ResourceName">请工作人员记录患者的回应</string>
+    <string name="notarize" tools:ignore="ResourceName">确认</string>
 </resources>