日期等选择器使用
This commit is contained in:
parent
7221f87a25
commit
5705e51a2d
@ -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"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
62
app/src/main/java/com/dahe/gldriver/utils/PickDateUtils.kt
Normal file
62
app/src/main/java/com/dahe/gldriver/utils/PickDateUtils.kt
Normal file
@ -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"
|
||||
|
@ -25,6 +25,7 @@ def Countdownview = '2.1.6'
|
||||
def Xpopup = '2.10.0'
|
||||
def CheckVersionLib = '2.4.2'
|
||||
def BuglyVersion = 'latest.release'
|
||||
def CalendarPicker = '4.1.13'
|
||||
project.ext {
|
||||
android = [
|
||||
compileSdkVersion: 33,
|
||||
@ -70,7 +71,10 @@ project.ext {
|
||||
"Xpopup" :"com.github.li-xiaojun:XPopup:${Xpopup}",
|
||||
"CheckVersionLib" :"com.github.AlexLiuSheng:CheckVersionLib:${CheckVersionLib}",
|
||||
"Bugly" :"com.tencent.bugly:crashreport:${BuglyVersion}",//todo
|
||||
"PickerView" :"com.contrarywind:Android-PickerView:${PickerView}",
|
||||
// "CalendarPicker" :"com.github.gzu-liyujiang.AndroidPicker:CalendarPicker:${CalendarPicker}",
|
||||
"AddressPicker" :"com.github.gzu-liyujiang.AndroidPicker:AddressPicker:${CalendarPicker}",
|
||||
"WheelPicker" :"com.github.gzu-liyujiang.AndroidPicker:WheelPicker:${CalendarPicker}",
|
||||
// "PickerView" :"com.contrarywind:Android-PickerView:${PickerView}",
|
||||
"Permissionx" :"com.guolindev.permissionx:permissionx:${Permissionx}"
|
||||
]
|
||||
}
|
||||
|
@ -68,7 +68,7 @@ dependencies {
|
||||
api rootProject.ext.dependencies["statusbaruitl"]
|
||||
api rootProject.ext.dependencies["BaseRecyclerViewAdapterHelper"]
|
||||
api rootProject.ext.dependencies["PhotoPicker"]
|
||||
api rootProject.ext.dependencies["PickerView"]
|
||||
// api rootProject.ext.dependencies["PickerView"]
|
||||
api rootProject.ext.dependencies["Xpopup"]
|
||||
api rootProject.ext.dependencies["Countdownview"]
|
||||
api rootProject.ext.dependencies["CheckVersionLib"]
|
||||
@ -80,6 +80,8 @@ dependencies {
|
||||
api rootProject.ext.dependencies["MagicIndicator"]
|
||||
api rootProject.ext.dependencies["glide-okhttps"]
|
||||
api rootProject.ext.dependencies["Permissionx"]
|
||||
api rootProject.ext.dependencies["WheelPicker"]
|
||||
api rootProject.ext.dependencies["AddressPicker"]
|
||||
api 'pub.devrel:easypermissions:3.0.0'
|
||||
api 'io.github.lucksiege:compress:v3.11.2'
|
||||
// api 'com.gyf.cactus:cactus:1.1.3-beta13'
|
||||
|
@ -0,0 +1,48 @@
|
||||
package com.dahe.mylibrary.base
|
||||
|
||||
import android.content.Context
|
||||
import kotlin.reflect.KFunction0
|
||||
|
||||
/**
|
||||
* @ClassName SingletonHolder
|
||||
* @Author john
|
||||
* @Date 2024/2/5 15:35
|
||||
* @Description TODO
|
||||
*/
|
||||
open class SingletonHolder<out T, in A>(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<out T>(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, Context>(::SkinManager)
|
||||
//}
|
Loading…
Reference in New Issue
Block a user