From 1bc1acff2127d61b359800096ad5b904370d9176 Mon Sep 17 00:00:00 2001 From: zuojincheng <lf_zuo@163.com> Date: 星期三, 26 三月 2025 09:25:47 +0800 Subject: [PATCH] refactor(nfc): 重构 NFC 读写助手类 --- generallibrary/src/main/java/com/dayu/general/activity/MainActivity.kt | 132 ++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 128 insertions(+), 4 deletions(-) diff --git a/generallibrary/src/main/java/com/dayu/general/activity/MainActivity.kt b/generallibrary/src/main/java/com/dayu/general/activity/MainActivity.kt index d30a700..e589145 100644 --- a/generallibrary/src/main/java/com/dayu/general/activity/MainActivity.kt +++ b/generallibrary/src/main/java/com/dayu/general/activity/MainActivity.kt @@ -1,28 +1,152 @@ package com.dayu.general.activity import android.os.Bundle +import android.view.LayoutInflater +import androidx.core.content.ContextCompat import androidx.fragment.app.Fragment +import com.dayu.baselibrary.net.subscribers.SubscriberListener +import com.dayu.baselibrary.utils.ToastUtil +import com.dayu.general.BaseApplication +import com.dayu.general.R +import com.dayu.general.adapter.TabAdapter +import com.dayu.general.bean.net.LoginResult +import com.dayu.general.bean.net.UserInfoResult +import com.dayu.general.databinding.ActivityMainBinding +import com.dayu.general.net.ApiManager +import com.dayu.general.net.BaseResponse -class MainActivity : BaseActivity(){ +class MainActivity : BaseActivity() { - + var binding: ActivityMainBinding? = null private val fragments: ArrayList<Fragment> = ArrayList() override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - setupFragments(); + binding = ActivityMainBinding.inflate(LayoutInflater.from(this)) + setContentView(binding?.root) + setupFragments() + initView() + initTab() + getUserInfo(); } + private fun getUserInfo() { + // 浣跨敤姝g‘鐨勭被鍨嬪弬鏁� + ApiManager.getInstance().requestGetLoading( + this, + "base/user/getUserInfos/" + BaseApplication.userId, + UserInfoResult::class.java, + null, + object : SubscriberListener<BaseResponse<UserInfoResult>>() { + override fun onNext(t: BaseResponse<UserInfoResult>) { + if (t.success) { + BaseApplication.userName = t.content?.userName ?: "" + BaseApplication.userPhone = t.content?.phone ?: "" + BaseApplication.blockName = t.content?.blockName ?: "" + } else { + // 澶勭悊鎼滅储澶辫触鐨勬儏鍐� + ToastUtil.show(t.msg) + } + } + + override fun onError(e: Throwable?) { + super.onError(e) + ToastUtil.show("鎼滅储澶辫触: ${e?.message ?: "鏈煡閿欒"}") + } + } + ) + } + + + private fun initView() { + binding!!.BSCardLL.setOnClickListener { v -> changeBottomState(Tab.BSC) } + binding!!.rechargeLL.setOnClickListener { v -> changeBottomState(Tab.RECHARGE) } + binding!!.myLL.setOnClickListener { v -> changeBottomState(Tab.MY) } + } private fun setupFragments() { fragments.add(BSCardFragment()) fragments.add(RechargeFragment()) - fragments.add(BSCardFragment()) + fragments.add(MyFragment()) } + private fun initTab() { + binding?.viewPager?.adapter = TabAdapter(this, fragments) + binding?.viewPager?.currentItem = (1) + binding?.viewPager?.offscreenPageLimit = 3 + binding?.viewPager?.isUserInputEnabled = false + } + private enum class Tab { + BSC, RECHARGE, MY + } + /** + * 淇敼搴曢儴鐘舵�� + */ + private fun changeBottomState(tab: Tab) { + resetTabState() + when (tab) { + Tab.BSC -> updateTabUI(0, R.drawable.bottom_card_white, R.color.white) + Tab.RECHARGE -> updateTabUI(1, R.drawable.bottom_recharge_white, R.color.white) + Tab.MY -> updateTabUI(2, R.drawable.bottom_my_white, R.color.white) + } + } + /** + * 閲嶇疆鎵�鏈� Tab 鐨勯粯璁ょ姸鎬� + */ + private fun resetTabState() { + binding!!.BSCardImg.setImageDrawable( + ContextCompat.getDrawable( + this, + R.drawable.bottom_card_black + ) + ) + binding!!.BSCardText.setTextColor(ContextCompat.getColor(this, R.color.black)) + binding!!.rechargeImg.setImageDrawable( + ContextCompat.getDrawable( + this, + R.drawable.bottom_recharge_black + ) + ) + binding!!.rechargeText.setTextColor(ContextCompat.getColor(this, R.color.black)) + + binding!!.myImg.setImageDrawable( + ContextCompat.getDrawable( + this, + R.drawable.bottom_my_black + ) + ) + binding!!.myText.setTextColor(ContextCompat.getColor(this, R.color.black)) + } + + /** + * 鏇存柊鏌愪釜 Tab 鐨� UI 鐘舵�� + */ + private fun updateTabUI(position: Int, iconResId: Int, textColorResId: Int) { + if (position == 1) { + binding!!.viewPager.setCurrentItem(position, true) + } else { + binding!!.viewPager.setCurrentItem(position, false) + } + when (position) { + 0 -> { + binding!!.BSCardImg.setImageDrawable(ContextCompat.getDrawable(this, iconResId)) + binding!!.BSCardText.setTextColor(ContextCompat.getColor(this, textColorResId)) + } + + 1 -> { + binding!!.rechargeImg.setImageDrawable(ContextCompat.getDrawable(this, iconResId)) + binding!!.rechargeText.setTextColor(ContextCompat.getColor(this, textColorResId)) + } + + 2 -> { + binding!!.myImg.setImageDrawable(ContextCompat.getDrawable(this, iconResId)) + binding!!.myText.setTextColor(ContextCompat.getColor(this, textColorResId)) + } + } + } } \ No newline at end of file -- Gitblit v1.8.0