首页 > 解决方案 > 为什么我无法在 android.R.style.mycustomstyle 的主要活动中使用我的自定义样式?

问题描述

我试图在单击 textView 时显示微调器 DatePickerDialog。因为android.R.style.Theme_Holo_Light_Dialog不推荐使用我正在尝试创建一个自定义微调器 DatePickerDialog。

所以我在值中创建了一个文件 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

然后,如果我使用 deprecated android.R.style.Theme_Holo_Light_Dialog,当我在微调器 DatePickerDialog 上单击 OK 时,未在 textView 上设置日期

标签: androidkotlinandroid-layoutdatepickerandroid-styles

解决方案


推荐阅读