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