diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 502522e..3976070 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -136,7 +136,6 @@ () { override fun initView(savedInstanceState: Bundle?) { setStatusBarColor(R.color.white) - setTitleBar("实名认证",true) - binding.btnOk.setOnClickListener { - ActivityUtils.startActivity(mContext,AuthQualificationActivity::class.java) + setTitleBar("实名认证", true) + + binding.run { + btnOk.setOnClickListener { + ActivityUtils.startActivity(mContext, AuthQualificationActivity::class.java) + } + + tvStart.run { + setOnClickListener { + PickDateUtils.getInstance() + .showDate(this@AuthDriverActivity, "有效起始日期") { year, month, day -> + this.text = "$year-$month-$day" + } + } + } + tvEnd.run { + setOnClickListener { + PickDateUtils.getInstance() + .showDate(this@AuthDriverActivity, "有效结束日期") { year, month, day -> + this.text = "$year-$month-$day" + } + } + } + tvCarType.run { + setOnClickListener { + PickDateUtils.getInstance() + .showSelectCarType(this@AuthDriverActivity, "选择准驾车型") { _, item -> + this.text = item.toString() + } + } + } + } } diff --git a/app/src/main/java/com/dahe/gldriver/ui/account/authperson/AuthPersonActivity.kt b/app/src/main/java/com/dahe/gldriver/ui/account/authperson/AuthPersonActivity.kt index 316dc4f..194f4fc 100644 --- a/app/src/main/java/com/dahe/gldriver/ui/account/authperson/AuthPersonActivity.kt +++ b/app/src/main/java/com/dahe/gldriver/ui/account/authperson/AuthPersonActivity.kt @@ -3,8 +3,10 @@ package com.dahe.gldriver.ui.account.authperson import android.os.Bundle import com.dahe.gldriver.R import com.dahe.gldriver.databinding.ActivityAuthPersonBinding +import com.dahe.gldriver.utils.PickDateUtils import com.dahe.mylibrary.base.BaseActivity import com.dahe.mylibrary.utils.ActivityUtils +import com.dahe.mylibrary.utils.ToastUtils /** * @ClassName AuthRoleActivity @@ -15,9 +17,28 @@ import com.dahe.mylibrary.utils.ActivityUtils class AuthPersonActivity : BaseActivity() { override fun initView(savedInstanceState: Bundle?) { setStatusBarColor(R.color.white) - setTitleBar("实名认证",true) + setTitleBar("实名认证", true) binding.btnOk.setOnClickListener { - ActivityUtils.startActivity(mContext,AuthDriverActivity::class.java) + ActivityUtils.startActivity(mContext, AuthDriverActivity::class.java) + } + + binding.run { + tvStart.run { + setOnClickListener { + PickDateUtils.getInstance() + .showDate(this@AuthPersonActivity,"有效起始日期") { year, month, day -> + this.text = "$year-$month-$day" + } + } + } + tvEnd.run { + setOnClickListener { + PickDateUtils.getInstance() + .showDate(this@AuthPersonActivity,"有效结束日期") { year, month, day -> + this.text = "$year-$month-$day" + } + } + } } } diff --git a/app/src/main/java/com/dahe/gldriver/ui/account/authperson/AuthQualificationActivity.kt b/app/src/main/java/com/dahe/gldriver/ui/account/authperson/AuthQualificationActivity.kt index 427dd87..dd9d694 100644 --- a/app/src/main/java/com/dahe/gldriver/ui/account/authperson/AuthQualificationActivity.kt +++ b/app/src/main/java/com/dahe/gldriver/ui/account/authperson/AuthQualificationActivity.kt @@ -3,6 +3,7 @@ package com.dahe.gldriver.ui.account.authperson import android.os.Bundle import com.dahe.gldriver.R import com.dahe.gldriver.databinding.ActivityAuthQualificationBinding +import com.dahe.gldriver.utils.PickDateUtils import com.dahe.mylibrary.base.BaseActivity import com.dahe.mylibrary.utils.ActivityUtils @@ -12,12 +13,23 @@ import com.dahe.mylibrary.utils.ActivityUtils * @Date 2024/1/25 15:20 * @Description 从业资格证认证 */ -class AuthQualificationActivity : BaseActivity(){ +class AuthQualificationActivity : BaseActivity() { override fun initView(savedInstanceState: Bundle?) { setStatusBarColor(R.color.white) - setTitleBar("实名认证",true) + setTitleBar("实名认证", true) binding.btnOk.setOnClickListener { - ActivityUtils.startActivity(mContext,AuthBankCardActivity::class.java) + ActivityUtils.startActivity(mContext, AuthBankCardActivity::class.java) + } + + binding.run { + tvDate.run { + setOnClickListener { + PickDateUtils.getInstance() + .showDate(this@AuthQualificationActivity,"选择有效期至") { year, month, day -> + this.text = "$year-$month-$day" + } + } + } } } diff --git a/app/src/main/java/com/dahe/gldriver/utils/PickDateUtils.kt b/app/src/main/java/com/dahe/gldriver/utils/PickDateUtils.kt new file mode 100644 index 0000000..3ec6e16 --- /dev/null +++ b/app/src/main/java/com/dahe/gldriver/utils/PickDateUtils.kt @@ -0,0 +1,62 @@ +package com.dahe.gldriver.utils + +import android.app.Activity +import androidx.appcompat.app.AppCompatActivity +import com.dahe.gldriver.R +import com.dahe.mylibrary.base.SingletonHolder +import com.dahe.mylibrary.base.SingletonNoPHolder +import com.github.gzuliyujiang.wheelpicker.BirthdayPicker +import com.github.gzuliyujiang.wheelpicker.OptionPicker +import com.github.gzuliyujiang.wheelpicker.contract.OnDatePickedListener +import com.github.gzuliyujiang.wheelpicker.contract.OnOptionPickedListener +import com.github.gzuliyujiang.wheelpicker.entity.DateEntity + +/** + * @ClassName PickDateUtils + * @Author john + * @Date 2024/2/5 14:48 + * @Description TODO + */ +class PickDateUtils private constructor() { + companion object : SingletonNoPHolder(::PickDateUtils) + + + /** + * TODO + * 底部弹出生日日期选择 + *@param title 日期选择title + * @param dateEntity 默认参数:默认当天 + * @param listener + */ + fun showDate( + activity : AppCompatActivity, + title: String = "", + dateEntity: DateEntity = DateEntity.today(), + listener: OnDatePickedListener + ) { + + val picker = BirthdayPicker(activity) + picker.setTitle(title) + picker.setDefaultValue(dateEntity.year, dateEntity.month, dateEntity.day) + picker.setOnDatePickedListener(listener) +// picker.wheelLayout.setResetWhenLinkage(false) + picker.show() + } + + + /** + * 选择驾驶证类型 + * @param title + * @param listener + */ + fun showSelectCarType(activity : AppCompatActivity,title: String = "", listener: OnOptionPickedListener) { + OptionPicker(activity) + .run { + setData("A1", "A2", "A3", "B1", "B2", "B3", "C1", "C2") + setDefaultValue("B1") + setTitle(title) + setOnOptionPickedListener(listener) + show() + } + } +} \ No newline at end of file diff --git a/app/src/main/res/layout/activity_auth_driver.xml b/app/src/main/res/layout/activity_auth_driver.xml index 3bc7411..fd0b522 100644 --- a/app/src/main/res/layout/activity_auth_driver.xml +++ b/app/src/main/res/layout/activity_auth_driver.xml @@ -163,6 +163,7 @@ android:textSize="@dimen/sp_15"> @@ -215,6 +218,7 @@ android:textSize="@dimen/sp_15"> diff --git a/app/src/main/res/layout/activity_auth_person.xml b/app/src/main/res/layout/activity_auth_person.xml index ef6bc76..7168eeb 100644 --- a/app/src/main/res/layout/activity_auth_person.xml +++ b/app/src/main/res/layout/activity_auth_person.xml @@ -104,7 +104,7 @@ android:orientation="horizontal"> - + android:hint="请选择开始日期" + tools:text="1990-05-24"> + + + + + + diff --git a/app/src/main/res/layout/activity_auth_qualification.xml b/app/src/main/res/layout/activity_auth_qualification.xml index 3889ace..85f0095 100644 --- a/app/src/main/res/layout/activity_auth_qualification.xml +++ b/app/src/main/res/layout/activity_auth_qualification.xml @@ -123,6 +123,7 @@ android:textSize="@dimen/sp_15"> (creator: (A) -> T) { + + private var creator: ((A) -> T)? = creator + + @Volatile + private var instance: T? = null + + //对上述方法的一种更简洁的写法 + fun getInstance(arg: A): T = + instance ?: synchronized(this) { + instance ?: creator!!(arg).apply { + instance = this + } + } +} + + +open class SingletonNoPHolder(creator: () -> T) { + + private var creator: (() -> T)? = creator + + @Volatile + private var instance: T? = null + + //对上述方法的一种更简洁的写法 + fun getInstance(): T = + instance ?: synchronized(this) { + instance ?: creator!!().apply { + instance = this + } + } +} + +//使用 +//class SkinManager private constructor(context: Context) { +// companion object : SingletonHolder(::SkinManager) +//} \ No newline at end of file