From 99b11059aedf616df4ed3b74300fa59417568bc3 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期二, 08 四月 2025 16:37:38 +0800
Subject: [PATCH] feat: 添加单选按钮文本颜色资源文件

---
 generallibrary/src/main/java/com/dayu/general/activity/NewCard2Activity.kt |  224 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 224 insertions(+), 0 deletions(-)

diff --git a/generallibrary/src/main/java/com/dayu/general/activity/NewCard2Activity.kt b/generallibrary/src/main/java/com/dayu/general/activity/NewCard2Activity.kt
new file mode 100644
index 0000000..9ab0d3d
--- /dev/null
+++ b/generallibrary/src/main/java/com/dayu/general/activity/NewCard2Activity.kt
@@ -0,0 +1,224 @@
+package com.dayu.general.activity
+
+import android.content.Intent
+import android.os.Bundle
+import android.text.Editable
+import android.text.TextWatcher
+import android.view.View
+import android.widget.Toast
+import com.dayu.baselibrary.net.subscribers.SubscriberListener
+import com.dayu.baselibrary.view.TitleBar.ClickType_LEFT_IMAGE
+import com.dayu.general.BaseApplication
+import com.dayu.general.R
+import com.dayu.general.databinding.ActivityNewCard1GeBinding
+import com.dayu.general.net.ApiManager
+import com.dayu.general.net.BaseResponse
+import com.dayu.general.tool.NfcReadHelper
+
+/**
+ * Description: 鐢ㄦ埛寮�鍗$晫闈�
+ * Author: zuo
+ * Date: 2025/4/7
+ */
+class NewCard2Activity : BaseNfcActivity() {
+
+    private lateinit var binding: ActivityNewCard1GeBinding
+
+    // 鏀粯鏂瑰紡
+    private var paymentMethod: String = "鐜伴噾"
+
+    // 鍗$墿鐞咺D
+    private var cardPhysicalId: String = ""
+
+    // 鐢ㄦ埛ID
+    private var userId: String = ""
+
+    companion object {
+        private const val TAG = "NewCard2Activity"
+    }
+
+    override fun onCreate(savedInstanceState: Bundle?) {
+        super.onCreate(savedInstanceState)
+        binding = ActivityNewCard1GeBinding.inflate(layoutInflater)
+        setContentView(binding.root)
+
+        initView()
+        initListener()
+    }
+
+
+    private fun initView() {
+        // 鍒濆鍖栨爣棰樻爮杩斿洖鎸夐挳
+        binding.titleBar.setOnItemclickListner(ClickType_LEFT_IMAGE) {
+            finish()
+        }
+
+        // 鍒濆鍖朜FC璇诲崱瀹瑰櫒锛屽垵濮嬮殣钘�
+        binding.nfcContainer.visibility = View.VISIBLE
+
+        // 浠嶪ntent涓幏鍙栫敤鎴蜂俊鎭紙濡傛灉鏈夛級
+        val userName = intent.getStringExtra("userName") ?: ""
+        val rawIdCard = intent.getStringExtra("idCard")
+        val idCard = if (rawIdCard.isNullOrBlank()) "鏃�" else rawIdCard
+        val farmerCode = intent.getStringExtra("farmerCode") ?: ""
+        userId = intent.getStringExtra("userId") ?: ""
+
+        // 璁剧疆鐢ㄦ埛淇℃伅
+        binding.newCardUserName.text = userName
+        binding.newCardIdCard.text = idCard
+        binding.newCardFarmerCode.text = farmerCode
+
+        // 璁剧疆閲戦杈撳叆闄愬埗涓轰袱浣嶅皬鏁�
+        binding.newCardRechargeAmount.addTextChangedListener(createDecimalTextWatcher())
+        binding.newCardCardFee.addTextChangedListener(createDecimalTextWatcher())
+    }
+
+    /**
+     * 鍒涘缓闄愬埗杈撳叆涓や綅灏忔暟鐨凾extWatcher
+     */
+    private fun createDecimalTextWatcher(): TextWatcher {
+        return object : TextWatcher {
+            override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
+                // 涓嶉渶瑕佸疄鐜�
+            }
+
+            override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
+                // 涓嶉渶瑕佸疄鐜�
+            }
+
+            override fun afterTextChanged(s: Editable?) {
+                if (s == null || s.isEmpty()) return
+
+                val str = s.toString()
+                // 濡傛灉杈撳叆鐨勪笉鏄湁鏁堢殑灏忔暟鏍煎紡锛岃繘琛屽鐞�
+                if (str.contains(".")) {
+                    val decimalIndex = str.indexOf(".")
+                    // 濡傛灉灏忔暟鐐瑰悗瓒呰繃涓や綅锛屾埅鍙栧埌涓や綅
+                    if (decimalIndex >= 0 && str.length - decimalIndex > 3) {
+                        s.delete(decimalIndex + 3, str.length)
+                    }
+                }
+            }
+        }
+    }
+
+    private fun initListener() {
+        // 璁剧疆鏀粯鏂瑰紡閫夋嫨鐩戝惉
+        binding.newCardPaymentMethod.setOnCheckedChangeListener { group, checkedId ->
+            paymentMethod = when (checkedId) {
+                R.id.newCard_cashPayment -> "鐜伴噾"
+                R.id.newCard_posPayment -> "POS鏈�"
+                R.id.newCard_bankTransfer -> "閾惰杞处"
+                else -> "鐜伴噾"
+            }
+        }
+
+        // 璁剧疆寮�鍗℃寜閽偣鍑荤洃鍚�
+        binding.newCardRegistBtn.setOnClickListener {
+            if (cardPhysicalId.isEmpty()) {
+                // 濡傛灉灏氭湭璇诲彇鍒板崱鐗╃悊ID锛屾樉绀篘FC璇诲崱鐣岄潰
+                binding.nfcContainer.visibility = View.VISIBLE
+            } else {
+                // 宸茶鍙栧埌鍗$墿鐞咺D锛岃繘琛屽紑鍗℃搷浣�
+                registerNewCard()
+            }
+        }
+    }
+
+    private fun registerNewCard() {
+        // 鑾峰彇鍏呭�奸噾棰�
+        val rechargeAmountStr = binding.newCardRechargeAmount.text.toString()
+        val rechargeAmount = if (rechargeAmountStr.isEmpty()) 0.0 else rechargeAmountStr.toDouble()
+
+        // 鑾峰彇宸ユ湰璐�
+        val cardFeeStr = binding.newCardCardFee.text.toString()
+        val cardFee = if (cardFeeStr.isEmpty()) 0.0 else cardFeeStr.toDouble()
+
+        // 鏍煎紡鍖栭噾棰濅负涓や綅灏忔暟
+        val formattedRechargeAmount = String.format("%.2f", rechargeAmount)
+        val formattedCardFee = String.format("%.2f", cardFee)
+
+        // 鑾峰彇鏀粯鏂瑰紡ID
+        val paymentId = when (paymentMethod) {
+            "鐜伴噾" -> 1
+            "POS鏈�" -> 2
+            "閾惰杞处" -> 3
+            else -> 1
+        }
+
+        val remark = binding.newCardRemark.text.toString()
+
+        // 鏋勫缓璇锋眰鍙傛暟
+        val params = HashMap<String, Any>()
+        params["cardAddr"] = cardPhysicalId // 姘村崱鍦板潃锛堢墿鐞咺D锛�
+        params["clientNum"] = binding.newCardFarmerCode.text.toString() // 鍐滄埛缂栧彿
+        params["cardCost"] = (cardFee * 100).toInt() // 璐崱閲戦锛堝伐鏈垂锛夎浆涓哄垎
+        params["amount"] = (rechargeAmount * 100).toInt() // 鍏呭�奸噾棰濊浆涓哄垎
+        params["paymentId"] = paymentId // 鏀粯鏂瑰紡
+        params["remarks"] = remark // 澶囨敞
+        params["operator"] = BaseApplication.userId // 鎿嶄綔浜篒D
+
+        // 鎵ц鍗$墖婵�娲籄PI璇锋眰
+        ApiManager.getInstance().requestPostLoading(
+            this,
+            "sell/card/active",
+            String::class.java,
+            params,
+            object : SubscriberListener<BaseResponse<String>>() {
+                override fun onNext(response: BaseResponse<String>) {
+                    if (response.success) {
+                        // 婵�娲绘垚鍔�
+                        Toast.makeText(this@NewCard2Activity, "寮�鍗℃垚鍔�", Toast.LENGTH_SHORT).show()
+                        setResult(RESULT_OK)
+                        finish()
+                    } else {
+                        // 婵�娲诲け璐�
+                        Toast.makeText(
+                            this@NewCard2Activity,
+                            "寮�鍗″け璐�: ${response.msg}",
+                            Toast.LENGTH_SHORT
+                        ).show()
+                    }
+                }
+
+                override fun onError(e: Throwable?) {
+                    super.onError(e)
+                    // 璇锋眰寮傚父
+                    Toast.makeText(
+                        this@NewCard2Activity,
+                        "寮�鍗″け璐�: ${e?.message ?: "缃戠粶寮傚父"}",
+                        Toast.LENGTH_SHORT
+                    ).show()
+                }
+            }
+        )
+    }
+
+    override fun onResume() {
+        super.onResume()
+        // 寮�鍚墠鍙拌皟搴︾郴缁燂紝浼樺厛澶勭悊NFC鏍囩
+
+    }
+
+    override fun onPause() {
+        super.onPause()
+        // 鍏抽棴鍓嶅彴璋冨害绯荤粺
+
+    }
+
+    override fun onNfcBack(intent: Intent) {
+        var cardNumber = NfcReadHelper.getInstance(intent, this).getCardNumber()
+        if (!cardNumber.isEmpty()) {
+            // 淇濆瓨鍗$墿鐞咺D
+            cardPhysicalId = cardNumber
+            // 鏇存柊UI
+            binding.newCardArerNumber.text = cardNumber
+            // 闅愯棌NFC璇诲崱鐣岄潰
+            binding.nfcContainer.visibility = View.GONE
+
+            Toast.makeText(this, "璇诲崱鎴愬姛", Toast.LENGTH_SHORT).show()
+        }
+    }
+
+
+}
\ No newline at end of file

--
Gitblit v1.8.0