我试图在单击 textView 时显示一个微调器 DatePickerDialog。
因为 android.R.style.Theme_Holo_Light_Dialog
已弃用,我正在尝试创建自定义微调器 DatePickerDialog。
所以我在 values 中创建了一个文件 style.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="MySpinnerDatePickerStyle" parent="android:Theme.Material.Dialog">
<item name="android:datePickerStyle">@style/MySpinnerDatePicker</item>
</style>
<style name="MySpinnerDatePicker" parent="android:Widget.Material.DatePicker">
<item name="android:datePickerMode">spinner</item>
</style>
</resources>
然后在我的主要活动中,我使用它:
private lateinit var binding: ActivityMainBinding
private val TAG = "MainActivity"
private val mDisplayDate: TextView? = null
private var mDateSetListener: OnDateSetListener? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
binding.tvDate.setOnClickListener(ActionClick())
mDateSetListener = OnDateSetListener { _, year, month, day ->
var month = month
month += 1
Log.d(TAG, "onDateSet: mm/dd/yyy: $month/$day/$year")
val date = "$month/$day/$year"
mDisplayDate?.setText(date)
}
}
inner class ActionClick: View.OnClickListener {
override fun onClick(view: View?) {
val cal = Calendar.getInstance()
val year= cal.get(Calendar.YEAR)
val month= cal.get(Calendar.MONTH)
val day= cal.get(Calendar.DAY_OF_MONTH)
val dPDialog = DatePickerDialog(
this@MainActivity,
android.R.style.MySpinnerDatePickerStyle,
mDateSetListener,
year, month, day
)
dPDialog.window?.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
dPDialog.show()
}
}
但代码无法编译原因:Unresolved reference: MySpinnerDatePickerStyle
然后,如果我使用已弃用的 android.R.style.Theme_Holo_Light_Dialog
,当我在微调器 DatePickerDialog 上单击“确定”时,不会在 textView 上设置日期