소스 검색

1.设置edittext获取焦点不弹软键盘

王鹏鹏 2 년 전
부모
커밋
b2324afb7d

+ 87 - 46
mmse/src/main/java/com/yingyangfly/mmse/fragment/SelectedItemFragment.kt

@@ -1,6 +1,9 @@
 package com.yingyangfly.mmse.fragment
 
+import android.annotation.SuppressLint
 import android.os.Bundle
+import android.view.MotionEvent
+import android.view.View
 import androidx.core.os.bundleOf
 import androidx.navigation.Navigation
 import com.google.android.flexbox.FlexWrap
@@ -10,14 +13,15 @@ import com.yingyang.mmse.R
 import com.yingyang.mmse.databinding.FragmentSelectedItemBinding
 import com.yingyangfly.baselib.base.BaseFragment
 import com.yingyangfly.baselib.db.QuestionsBean
-import com.yingyangfly.baselib.ext.setOnSingleClickListener
+import com.yingyangfly.baselib.ext.getEndAnimation
+import com.yingyangfly.baselib.ext.getScaleAnimation
 import com.yingyangfly.baselib.ext.toast
 import com.yingyangfly.mmse.adapter.SelectedItemAdapter
 
 /**
  * 季节/星期单选类
  */
-class SelectedItemFragment : BaseFragment<FragmentSelectedItemBinding>() {
+class SelectedItemFragment : BaseFragment<FragmentSelectedItemBinding>(), View.OnTouchListener {
 
     /**
      * 原始问题id (2) (5)
@@ -53,52 +57,11 @@ class SelectedItemFragment : BaseFragment<FragmentSelectedItemBinding>() {
         }
     }
 
+    @SuppressLint("ClickableViewAccessibility")
     override fun initListener() {
         binding {
-            btnPrevious.setOnSingleClickListener { view ->
-                if (questionId == 5) {
-                    questionId--
-                    val bundle = bundleOf("questionId" to questionId)
-                    val controller = Navigation.findNavController(view)
-                    controller.navigate(R.id.action_selectedItemFragment_to_inputFragment, bundle)
-                } else {
-                    if (questionId == 2) {
-                        val controller = Navigation.findNavController(view)
-                        controller.navigate(R.id.action_selectedItemFragment_to_yearFragment)
-                    } else {
-                        questionId--
-                        loadData()
-                    }
-                }
-            }
-
-            btnNext.setOnSingleClickListener { view ->
-                if (question != null) {
-                    if (question!!.inputString.isNullOrEmpty()) {
-                        val str = "请选择" + question!!.reviewItem
-                        str.toast()
-                    } else {
-                        if (questionId == 5) {
-                            questionId++
-                            val bundle = bundleOf("questionId" to questionId)
-                            val controller = Navigation.findNavController(view)
-                            controller.navigate(
-                                R.id.action_selectedItemFragment_to_judgmentFragment,
-                                bundle
-                            )
-                        } else {
-                            questionId++
-                            //跳转下一道题目
-                            val bundle = bundleOf("questionId" to questionId)
-                            val controller = Navigation.findNavController(view)
-                            controller.navigate(
-                                R.id.action_selectedItemFragment_to_inputFragment,
-                                bundle
-                            )
-                        }
-                    }
-                }
-            }
+            btnPrevious.setOnTouchListener(this@SelectedItemFragment)
+            btnNext.setOnTouchListener(this@SelectedItemFragment)
         }
     }
 
@@ -174,4 +137,82 @@ class SelectedItemFragment : BaseFragment<FragmentSelectedItemBinding>() {
             }
         }
     }
+
+    override fun onTouch(v: View, event: MotionEvent): Boolean {
+        when (event.action) {
+            MotionEvent.ACTION_DOWN -> {
+                if (v.id == R.id.btnPrevious || v.id == R.id.btnNext) {
+                    v.startAnimation(getScaleAnimation())
+                }
+            }
+            MotionEvent.ACTION_UP -> {
+                v.startAnimation(getEndAnimation())
+                if (v.id == R.id.btnPrevious) {
+                    pageUp(v)
+                } else if (v.id == R.id.btnNext) {
+                    pageNext(v)
+                }
+            }
+            MotionEvent.ACTION_CANCEL -> {
+                if (v.id == R.id.btnPrevious || v.id == R.id.btnNext) {
+                    v.startAnimation(getEndAnimation())
+                }
+            }
+        }
+        return true
+    }
+
+    /**
+     * 上一页
+     */
+    private fun pageUp(v: View) {
+        if (questionId == 5) {
+            questionId--
+            val bundle = bundleOf("questionId" to questionId)
+            val controller = Navigation.findNavController(v)
+            controller.navigate(
+                R.id.action_selectedItemFragment_to_inputFragment,
+                bundle
+            )
+        } else {
+            if (questionId == 2) {
+                val controller = Navigation.findNavController(v)
+                controller.navigate(R.id.action_selectedItemFragment_to_yearFragment)
+            } else {
+                questionId--
+                loadData()
+            }
+        }
+    }
+
+    /**
+     * 下一页
+     */
+    private fun pageNext(v: View) {
+        if (question != null) {
+            if (question!!.inputString.isNullOrEmpty()) {
+                val str = "请选择" + question!!.reviewItem
+                str.toast()
+            } else {
+                if (questionId == 5) {
+                    questionId++
+                    val bundle = bundleOf("questionId" to questionId)
+                    val controller = Navigation.findNavController(v)
+                    controller.navigate(
+                        R.id.action_selectedItemFragment_to_judgmentFragment,
+                        bundle
+                    )
+                } else {
+                    questionId++
+                    //跳转下一道题目
+                    val bundle = bundleOf("questionId" to questionId)
+                    val controller = Navigation.findNavController(v)
+                    controller.navigate(
+                        R.id.action_selectedItemFragment_to_inputFragment,
+                        bundle
+                    )
+                }
+            }
+        }
+    }
 }

+ 84 - 44
mmse/src/main/java/com/yingyangfly/mmse/fragment/YearFragment.kt

@@ -15,7 +15,6 @@ import com.yingyangfly.baselib.db.QuestionsBean
 import com.yingyangfly.baselib.ext.*
 import com.yingyangfly.mmse.adapter.NumberAdapter
 
-
 /**
  * 数字输入类
  */
@@ -30,45 +29,19 @@ class YearFragment : BaseFragment<FragmentYearBinding>(), View.OnTouchListener {
     @RequiresApi(Build.VERSION_CODES.LOLLIPOP)
     override fun initViews() {
         binding.editYear.showSoftInputOnFocus = false
-        numberList.clear()
-        for (i in 1..9) {
-            numberList.add(i.toString())
-        }
-        numberList.add("删除")
-        numberList.add("0")
-        numberList.add("确定")
         binding.rvNum.layoutManager = GridLayoutManager(mContext, 3)
         binding.rvNum.adapter = numberAdapter
         numberAdapter.setData(numberList)
         numberAdapter.onNumClickListener = { bean, type ->
             when (type) {
                 "0" -> {
-                    binding.editYear.post {
-                        stringBuffer.append(bean)
-                        binding.editYear.setText(stringBuffer.toString())
-                        binding.editYear.setSelection(stringBuffer.toString().length)
-                    }
+                    append(bean)
                 }
                 "1" -> {
-                    binding.editYear.post {
-                        if (stringBuffer.toString().isNullOrEmpty().not()) {
-                            val size = stringBuffer.toString().length - 1
-                            stringBuffer.deleteCharAt(size)
-                            binding.editYear.setText(stringBuffer.toString())
-                            binding.editYear.setSelection(stringBuffer.toString().length)
-                        }
-                    }
+                    delect()
                 }
                 "2" -> {
-                    if (dao != null) {
-                        if (question != null) {
-                            question!!.inputString = binding.editYear.text.toString().trim()
-                            question!!.reviewId = question!!.id
-                            question!!.reviewAnswer = binding.editYear.text.toString().trim()
-                            question!!.correct = ""
-                            dao?.update(question!!)
-                        }
-                    }
+                    saveData()
                 }
             }
 
@@ -87,9 +60,24 @@ class YearFragment : BaseFragment<FragmentYearBinding>(), View.OnTouchListener {
 
     override fun onResume() {
         super.onResume()
+        setRecycleview()
         loadData()
     }
 
+    /**
+     * 添加recycleview数据
+     */
+    private fun setRecycleview() {
+        numberList.clear()
+        for (i in 1..9) {
+            numberList.add(i.toString())
+        }
+        numberList.add("删除")
+        numberList.add("0")
+        numberList.add("确定")
+        numberAdapter.setData(numberList)
+    }
+
     /**
      * 加载数据
      */
@@ -122,20 +110,8 @@ class YearFragment : BaseFragment<FragmentYearBinding>(), View.OnTouchListener {
             }
             MotionEvent.ACTION_UP -> {
                 v.startAnimation(getEndAnimation())
-                if (binding.editYear.text.toString().trim().isNullOrEmpty()) {
-                    val str = "请输入$toastInfo"
-                    str.toast()
-                } else {
-                    if (question != null) {
-                        question!!.inputString = binding.editYear.text.toString().trim()
-                        question!!.reviewId = question!!.id
-                        question!!.reviewAnswer = binding.editYear.text.toString().trim()
-                        question!!.correct = ""
-                        dao?.update(question!!)
-                    }
-                    val bundle = bundleOf("questionId" to 2)
-                    val controller = Navigation.findNavController(v)
-                    controller.navigate(R.id.action_yearFragment_to_selectedItemFragment, bundle)
+                if (v.id == R.id.btnNext) {
+                    pageNext(v)
                 }
             }
             MotionEvent.ACTION_CANCEL -> {
@@ -146,4 +122,68 @@ class YearFragment : BaseFragment<FragmentYearBinding>(), View.OnTouchListener {
         }
         return true
     }
+
+    /**
+     * 添加数据
+     */
+    private fun append(bean: String) {
+        binding.editYear.post {
+            stringBuffer.append(bean)
+            binding.editYear.setText(stringBuffer.toString())
+            binding.editYear.setSelection(stringBuffer.toString().length)
+        }
+    }
+
+    /**
+     * 删除数据
+     */
+    private fun delect() {
+        binding.editYear.post {
+            if (stringBuffer.toString().isNullOrEmpty().not()) {
+                val size = stringBuffer.toString().length - 1
+                stringBuffer.deleteCharAt(size)
+                binding.editYear.setText(stringBuffer.toString())
+                binding.editYear.setSelection(stringBuffer.toString().length)
+            }
+        }
+    }
+
+    /**
+     * 保存数据
+     */
+    private fun saveData() {
+        if (dao != null) {
+            if (question != null) {
+                question!!.inputString = binding.editYear.text.toString().trim()
+                question!!.reviewId = question!!.id
+                question!!.reviewAnswer = binding.editYear.text.toString().trim()
+                question!!.correct = ""
+                dao?.update(question!!)
+            }
+        }
+    }
+
+    /**
+     * 下一页
+     */
+    private fun pageNext(v: View) {
+        if (binding.editYear.text.toString().trim().isNullOrEmpty()) {
+            val str = "请输入$toastInfo"
+            str.toast()
+        } else {
+            if (question != null) {
+                question!!.inputString = binding.editYear.text.toString().trim()
+                question!!.reviewId = question!!.id
+                question!!.reviewAnswer = binding.editYear.text.toString().trim()
+                question!!.correct = ""
+                dao?.update(question!!)
+            }
+            val bundle = bundleOf("questionId" to 2)
+            val controller = Navigation.findNavController(v)
+            controller.navigate(
+                R.id.action_yearFragment_to_selectedItemFragment,
+                bundle
+            )
+        }
+    }
 }