Почему я не могу использовать свой собственный стиль в своей основной деятельности с android.R.style.mycustomstyle?

#android #kotlin #android-layout #datepicker #android-styles

Вопрос:

Я пытаюсь показать, когда нажимается текстовое представление, каталог выбора даты spinner. Потому android.R.style.Theme_Holo_Light_Dialog что это устарело, я пытаюсь создать пользовательский каталог выбора даты spinner.

Поэтому я создал файл 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 , когда я нажимаю » ОК » в журнале выбора даты spinner, дата не устанавливается в текстовом представлении

Комментарии:

1. Собственные ресурсы вашего проекта начинаются не с android простого R.style.MySpinnerDatePickerStyle .