日期等选择器使用

This commit is contained in:
2024-02-05 17:26:48 +08:00
parent 7221f87a25
commit 5705e51a2d
12 changed files with 243 additions and 17 deletions
-1
View File
@@ -136,7 +136,6 @@
<activity
android:name=".ui.account.authperson.AuthPersonActivity"
android:configChanges="keyboardHidden|orientation|locale"
android:launchMode="singleTask"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
@@ -6,6 +6,8 @@ import com.dahe.gldriver.BuildConfig
import com.dahe.gldriver.base.App
import com.dahe.mylibrary.CommonBaseLibrary
import com.dahe.gldriver.net.Api
import com.github.gzuliyujiang.dialog.DialogConfig
import com.github.gzuliyujiang.dialog.DialogStyle
import java.lang.Exception
import java.security.SecureRandom
import java.security.cert.X509Certificate
@@ -19,6 +21,8 @@ class App : Application() {
super.onCreate()
app = this
CommonBaseLibrary.getInstance().init(this, Api.BASE_URL)
//选择器样式切换
DialogConfig.setDialogStyle(DialogStyle.One)
if (BuildConfig.DEBUG) {
// CrashHandler.getInstance().init(this);
// CrashHandler2.getInstance().init(getApplicationContext());
@@ -3,8 +3,13 @@ package com.dahe.gldriver.ui.account.authperson
import android.os.Bundle
import com.dahe.gldriver.R
import com.dahe.gldriver.databinding.ActivityAuthDriverBinding
import com.dahe.gldriver.utils.PickDateUtils
import com.dahe.gldriver.utils.SPUtils
import com.dahe.mylibrary.base.BaseActivity
import com.dahe.mylibrary.utils.ActivityUtils
import com.dahe.mylibrary.utils.ToastUtils
import com.github.gzuliyujiang.wheelpicker.contract.OnDatePickedListener
import com.github.gzuliyujiang.wheelpicker.entity.DateEntity
/**
* @ClassName AuthRoleActivity
@@ -15,9 +20,38 @@ import com.dahe.mylibrary.utils.ActivityUtils
class AuthDriverActivity : BaseActivity<ActivityAuthDriverBinding>() {
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()
}
}
}
}
}
@@ -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<ActivityAuthPersonBinding>() {
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"
}
}
}
}
}
@@ -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<ActivityAuthQualificationBinding>(){
class AuthQualificationActivity : BaseActivity<ActivityAuthQualificationBinding>() {
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"
}
}
}
}
}
@@ -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>(::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()
}
}
}
@@ -163,6 +163,7 @@
android:textSize="@dimen/sp_15"></TextView>
<TextView
android:id="@+id/tvCarType"
android:drawableRight="@drawable/right_gray"
android:drawablePadding="@dimen/dp_6"
android:gravity="right|center_vertical"
@@ -189,6 +190,7 @@
android:textSize="@dimen/sp_15"></TextView>
<TextView
android:id="@+id/tvStart"
android:drawableRight="@drawable/right_gray"
android:drawablePadding="@dimen/dp_6"
android:gravity="right|center_vertical"
@@ -197,6 +199,7 @@
android:layout_marginLeft="@dimen/dp_10"
android:layout_weight="1"
tools:text="2020-05-23"
android:hint="请选择起始日期"
android:textColor="@color/black"
android:paddingLeft="@dimen/dp_10"
android:textSize="@dimen/sp_15"></TextView>
@@ -215,6 +218,7 @@
android:textSize="@dimen/sp_15"></TextView>
<TextView
android:id="@+id/tvEnd"
android:drawableRight="@drawable/right_gray"
android:drawablePadding="@dimen/dp_6"
android:gravity="right|center_vertical"
@@ -223,6 +227,7 @@
android:layout_marginLeft="@dimen/dp_10"
android:layout_weight="1"
tools:text="2020-05-23"
android:hint="请选择结束日期"
android:textColor="@color/black"
android:paddingLeft="@dimen/dp_10"
android:textSize="@dimen/sp_15"></TextView>
@@ -104,7 +104,7 @@
android:orientation="horizontal">
<TextView
android:layout_width="@dimen/dp_70"
android:layout_width="@dimen/dp_100"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/start"
android:drawablePadding="@dimen/dp_2"
@@ -133,7 +133,7 @@
android:orientation="horizontal">
<TextView
android:layout_width="@dimen/dp_70"
android:layout_width="@dimen/dp_100"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/start"
android:drawablePadding="@dimen/dp_2"
@@ -156,21 +156,23 @@
</LinearLayout>
<LinearLayout
android:id="@+id/llStart"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_150"
android:orientation="horizontal">
<TextView
android:layout_width="@dimen/dp_70"
android:layout_width="@dimen/dp_100"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/start"
android:drawablePadding="@dimen/dp_2"
android:text="有效期"
android:text="有效开始日期"
android:textColor="@color/black"
android:textSize="@dimen/sp_15"></TextView>
<EditText
<TextView
android:id="@+id/tvStart"
android:layout_width="0dp"
android:layout_height="@dimen/dp_34"
android:layout_marginLeft="@dimen/dp_10"
@@ -181,7 +183,39 @@
android:textSize="@dimen/sp_15"
android:gravity="right|center_vertical"
android:paddingRight="@dimen/dp_10"
tools:text="1990-05-24 至 2020-05-23"></EditText>
android:hint="请选择开始日期"
tools:text="1990-05-24"></TextView>
</LinearLayout>
<LinearLayout
android:layout_below="@+id/llStart"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_14"
android:orientation="horizontal">
<TextView
android:layout_width="@dimen/dp_100"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/start"
android:drawablePadding="@dimen/dp_2"
android:text="有效结束日期"
android:textColor="@color/black"
android:textSize="@dimen/sp_15"></TextView>
<TextView
android:id="@+id/tvEnd"
android:layout_width="0dp"
android:layout_height="@dimen/dp_34"
android:layout_marginLeft="@dimen/dp_10"
android:layout_weight="1"
android:background="@drawable/shape_phone_bg"
android:paddingLeft="@dimen/dp_10"
android:textColor="@color/black"
android:textSize="@dimen/sp_15"
android:gravity="right|center_vertical"
android:paddingRight="@dimen/dp_10"
android:hint="请选择结束日期"
tools:text="1990-05-24"></TextView>
</LinearLayout>
</RelativeLayout>
@@ -123,6 +123,7 @@
android:textSize="@dimen/sp_15"></TextView>
<TextView
android:id="@+id/tvDate"
android:layout_width="0dp"
android:layout_height="@dimen/dp_34"
android:layout_marginLeft="@dimen/dp_10"