Android. Программирование для профессионалов. 4-е издание


Передача данных в DatePickerFragment



Download 21,53 Mb.
Pdf ko'rish
bet213/485
Sana13.07.2022
Hajmi21,53 Mb.
#787165
1   ...   209   210   211   212   213   214   215   216   ...   485
Bog'liq
Android Programmirovanie dlya professionalov 4-e izdanie 2020 Fillips Styuart Marsikano Gardner


20sp
3dp
Передача данных в DatePickerFragment
Чтобы получить данные в 
DatePickerFragment
, мы сохраним
дату в пакете аргументов 
DatePickerFragment
, где
DatePickerFragment
сможет обратиться к ней.
Создание аргументов фрагмента и присваивание им
значений обычно выполняется в функции 
newInstance(...)
,
заменяющем конструктор фрагмента (мы говорили об этом в
главе 12). Добавьте в файл 
DatePickerFragment.kt
функцию
newInstance(Date)
.
Листинг 13.3. Добавление функции newInstance(Date)
(DatePickerFragment.kt)
private const val ARG_DATE = "date"
class DatePickerFragment : DialogFragment() {
override 
fun
onCreateDialog(savedInstanceState: 
Bundle?):
Dialog {
...
}
companion object {
fun newInstance(date: Date):
DatePickerFragment {
val args = Bundle().apply {
putSerializable(ARG_DATE, date)
}
return DatePickerFragment().apply {


arguments = args
}
}
}
}
В классе 
CrimeFragment
удалите вызов конструктора
DatePickerFragment
и 
замените 
его 
вызовом
DatePickerFragment.newInstance(Date)
.
Листинг 13.4. Добавление вызова newInstance(...)
(CrimeFragment.kt)
override fun onStart() {
...
dateButton.setOnClickListener {
DatePickerFragment().apply {
DatePickerFragment.newInstance(crime.da
te).apply {
show(this@CrimeFragment.requireFrag
mentManager(), DIALOG_DATE)
}
}
}
Экземпляр 
DatePickerFragment
должен
инициализировать 
DatePickerDialog
по информации,
хранящейся 
в 
Date

Однако 
для 
инициализации
DatePickerDialog
необходимо 
иметь 
целочисленные
значения месяца, дня и года. Объект 
Date
больше напоминает
временную метку и не может предоставить нужные целые
значения напрямую.


Чтобы получить нужные значения, следует создать объект
Calendar
и использовать 
Date
для определения его
конфигурации. После этого вы сможете получить нужную
информацию из 
Calendar
.
В функции 
onCreateDialog(Bundle?)
получите объект
Date
из аргументов и используйте его с 
Calendar
для
инициализации 
DatePicker
.

Download 21,53 Mb.

Do'stlaringiz bilan baham:
1   ...   209   210   211   212   213   214   215   216   ...   485




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish