EmptiesDialog.kt 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. package xn.hxp.weidith
  2. import android.app.Dialog
  3. import android.content.Context
  4. import android.graphics.Color
  5. import android.graphics.drawable.ColorDrawable
  6. import android.os.Bundle
  7. import android.os.Handler
  8. import android.os.Looper
  9. import android.os.Message
  10. import android.util.Log
  11. import android.view.Gravity
  12. import android.view.MotionEvent
  13. import android.view.Window
  14. import android.view.WindowManager
  15. import android.widget.Button
  16. import android.widget.TextView
  17. import xn.hxp.R
  18. import xn.hxp.comm.Constants
  19. import com.blankj.utilcode.util.LogUtils
  20. //空瓶弹框
  21. class EmptiesDialog(ct: Context, private var chemicalName:String,private var wasteVolume: String, private var lint: IClickLit) : Dialog(ct) {
  22. private var butClos: Button? = null
  23. init {
  24. requestWindowFeature(Window.FEATURE_NO_TITLE)
  25. setContentView(R.layout.empties_dialog)
  26. window?.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
  27. window?.setGravity(Gravity.CENTER)
  28. window?.setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.WRAP_CONTENT)
  29. // 设置点击外部空白处不关闭对话框
  30. setCanceledOnTouchOutside(false)
  31. }
  32. override fun onCreate(savedInstanceState: Bundle?) {
  33. super.onCreate(savedInstanceState)
  34. findViewById<TextView>(R.id.chemicalName).text = "确认空瓶出库$chemicalName?"
  35. if (wasteVolume!=null){
  36. findViewById<TextView>(R.id.tvOne).text = "使用量:$wasteVolume"
  37. }
  38. findViewById<Button>(R.id.butClos).setOnClickListener {
  39. closHandle()
  40. dismiss()
  41. lint.onClickClose()
  42. }
  43. findViewById<Button>(R.id.determine).setOnClickListener {
  44. lint.onDetermineClick()
  45. closHandle()
  46. dismiss()
  47. }
  48. mCountDownHandler.removeMessages(Constants.WHAT_COUNT_DOWN_TWO)
  49. mCountDownHandler.sendEmptyMessage(Constants.WHAT_COUNT_DOWN_TWO)
  50. }
  51. interface IClickLit {
  52. fun onClickClose()//关闭
  53. fun onDetermineClick()//确定
  54. }
  55. private fun closHandle() {
  56. mCountDownHandler.removeMessages(Constants.WHAT_COUNT_DOWN_TWO)
  57. mCountDownHandler.removeCallbacksAndMessages(null)
  58. }
  59. private var mCounter = 0
  60. private val mCountDownHandler = object : Handler(Looper.getMainLooper()) {
  61. override fun handleMessage(msg: Message) {
  62. if (Constants.WHAT_COUNT_DOWN_TWO == msg.what) {
  63. val countDown = Constants.OFFTIME_TIME - mCounter
  64. Log.d("======返回时间", "$countDown")
  65. if (countDown <= 0) {
  66. dismiss()
  67. } else {
  68. sendEmptyMessageDelayed(Constants.WHAT_COUNT_DOWN_TWO, 1000)
  69. }
  70. mCounter++
  71. }
  72. }
  73. }
  74. override fun dispatchTouchEvent(ev: MotionEvent): Boolean {
  75. // 在触摸事件发生时被调用
  76. when (ev.action) {
  77. MotionEvent.ACTION_DOWN -> {
  78. // 用户按下屏幕时的处理逻辑
  79. onUserInteraction()
  80. }
  81. MotionEvent.ACTION_MOVE -> {
  82. // 用户在屏幕上移动手指时的处理逻辑
  83. }
  84. MotionEvent.ACTION_UP -> {
  85. // 用户抬起手指时的处理逻辑
  86. }
  87. }
  88. return super.dispatchTouchEvent(ev)
  89. }
  90. private fun onUserInteraction() {
  91. // 在用户与对话框交互时的逻辑处理
  92. mCounter=0
  93. }
  94. }