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


{ override fun beforeTextChanged(



Download 21,53 Mb.
Pdf ko'rish
bet132/485
Sana13.07.2022
Hajmi21,53 Mb.
#787165
1   ...   128   129   130   131   132   133   134   135   ...   485
Bog'liq
Android Programmirovanie dlya professionalov 4-e izdanie 2020 Fillips Styuart Marsikano Gardner

{
override fun beforeTextChanged(
sequence: CharSequence?,
start: Int,
count: Int,
after: Int
) {
// Это пространство оставлено
пустым специально
}
override fun onTextChanged(
sequence: CharSequence?,
start: Int,
before: Int,
count: Int
) {
crime.title =
sequence.toString()
}
override fun
afterTextChanged(sequence: Editable?) {
// И это
}
}
titleField.addTextChangedListener(title
Watcher)


}
}
Назначение слушателей во фрагменте работает точно так
же, как в activity. В листинге 8.8 мы создаем анонимный класс,
который реализует интерфейс слушателя 
TextWatcher
. Этот
интерфейс содержит три функции, но нас интересует только
одна: 
onTextChanged(...)
.
В 
функции 
onTextChanged(...)
мы 
вызываем
toString()
для объекта 
CharSequence
, представляющего
ввод пользователя. Эта функция возвращает строку, которая
затем используется для задания заголовка 
Crime
.
Обратите 
внимание, 
что слушатель 
TextWatcher
настраивается в функции 
onStart()
. Некоторые слушатели
срабатывают не только при взаимодействии с ними, но и при
восстановлении состояния виджета, например при повороте.
Слушатели, которые реагируют на ввод данных, такие как
TextWatcher
для 
EditText
или 
OnCheckChangedListener
для 
CheckBox
, тоже так работают.
Слушатели, которые реагируют только на взаимодействие с
пользователем, такие как 
OnClickListener
, не восприимчивы
к такому поведению, поскольку на них не влияет настройка
данных в виджете. Именно по этой причине вы не столкнулись
с подобной ситуацией в GeoQuiz. В этом приложении слушатели
устанавливались только на клики, то есть они не срабатывают
при повороте, поэтому вы могли настроить все в
onCreate(...)
— перед любым восстановлением состояния.
Состояние виджета восстанавливается после функции
onCreateView(...)
и перед функцией 
onStart()
. При
восстановлении состояния содержимое 
EditText
будет
установлено на любое значение, которое в данный момент
находится в заголовке 
crime.title
. В этот момент, если вы


уже установили слушателя на 
EditText
(например, в
onCreate(...)
или 
onCreateView(...)
), будут выполняться
функции 
TextWatcher
-а 
beforeTextChanged(...)
,
onTextChanged(...)
и 
afterTextChanged(...)
. Установка
слушателя в 
onStart()
позволяет избежать такого поведения,
так как слушатель подключается после восстановления
состояния виджета.
Затем виджет 
Button
настраивается для отображения даты
(листинг 8.9).

Download 21,53 Mb.

Do'stlaringiz bilan baham:
1   ...   128   129   130   131   132   133   134   135   ...   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