package com.fuban.user.dialog
|
|
import android.os.Bundle
|
import android.view.Gravity
|
import android.view.LayoutInflater
|
import android.view.View
|
import android.view.ViewGroup
|
import androidx.fragment.app.DialogFragment
|
import cn.sinata.xldutils.gone
|
import cn.sinata.xldutils.utils.SpanBuilder
|
import com.fuban.user.R
|
import com.fuban.user.interfaces.StringCallback
|
import kotlinx.android.synthetic.main.dialog_time_wheel.*
|
import org.jetbrains.anko.matchParent
|
import org.jetbrains.anko.wrapContent
|
import java.util.*
|
|
class CharterReserveTimeDialog : DialogFragment() {
|
private val calendar = Calendar.getInstance()
|
|
override fun onCreateView(
|
inflater: LayoutInflater,
|
container: ViewGroup?,
|
savedInstanceState: Bundle?
|
): View? {
|
return inflater.inflate(R.layout.dialog_time_wheel, container, false)
|
}
|
|
override fun onCreate(savedInstanceState: Bundle?) {
|
super.onCreate(savedInstanceState)
|
setStyle(STYLE_NO_FRAME, R.style.Dialog)
|
}
|
|
override fun onActivityCreated(savedInstanceState: Bundle?) {
|
super.onActivityCreated(savedInstanceState)
|
dialog?.window?.setLayout(matchParent, wrapContent)
|
dialog?.window?.setGravity(Gravity.BOTTOM)
|
dialog?.setCanceledOnTouchOutside(true)
|
}
|
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
super.onViewCreated(view, savedInstanceState)
|
tv_title.text = SpanBuilder("选择用车时间(上下滑动选择)").size(0,6,16).bold(0,6).build()
|
|
wv_4.gone()
|
wv_5.gone()
|
|
setYear()
|
setMonth()
|
setDay()
|
|
wv_1.setOnWheelViewListener { _, item ->
|
setMonth()
|
setDay()
|
}
|
wv_2.setOnWheelViewListener { _, _ ->
|
setDay()
|
}
|
|
tv_cancel.setOnClickListener {
|
dismiss()
|
}
|
tv_action.setOnClickListener {
|
callback?.onRlt(wv_1.seletedItem.replace("年","-")
|
+ wv_2.seletedItem.replace("月","-")
|
+ wv_3.seletedItem.replace("日",""))
|
dismiss()
|
}
|
}
|
|
private fun setYear() {
|
calendar.timeInMillis = System.currentTimeMillis() + 24 * 60 * 60 * 1000
|
val y = calendar.get(Calendar.YEAR)
|
val map = (0..20).map {
|
"${(y+it)}年"
|
}
|
wv_1.setItems(map)
|
wv_1.setSeletion(0)
|
}
|
|
private fun setMonth() {
|
val start = if (wv_1.seletedIndex == 0) calendar.get(Calendar.MONTH) + 1 else 1
|
wv_2.setItems((start..12).map { String.format("%02d月",it) })
|
wv_2.setSeletion(0)
|
}
|
|
private fun setDay() {
|
val start = if (wv_1.seletedIndex == 0&&wv_2.seletedIndex == 0) calendar.get(Calendar.DAY_OF_MONTH) else 1
|
val c = Calendar.getInstance()
|
c.set(Calendar.YEAR,wv_1.seletedItem.substring(0,4).toInt())
|
c.set(Calendar.MONTH,wv_2.seletedItem.substring(0,2).toInt()-1)
|
val max = c.getActualMaximum(Calendar.DAY_OF_MONTH)
|
wv_3.setItems((start..max).map { String.format("%02d日",it) })
|
wv_3.setSeletion(0)
|
}
|
|
private var callback: StringCallback? = null
|
|
fun setCallback(callback: StringCallback) {
|
this.callback = callback
|
}
|
}
|