У меня есть поле EditText, и я хочу проверить правильность ввода для этого.
Я применил MVVM + привязку данных и вызвал метод onTextChanged () во ViewModel
Источник:
XML
android:onTextChanged="@{(text, start, before, count) -> viewModel.onMyTextChanged(text)}"
ViewModel.kt
fun onMyTextChanged(text) {
// Show icon error if invalid, Show icon check done if valid
val isValid = MyValidation(text).checkValid()
}
MyValidation.kt
class MyValidation(text: String){
fun checkValid(): Boolean {
// Check text here with Regex Pattern
<-- TODO -->
// Check instance time of class
Log.d("INSTANCE", this.hashCode().toString() )
}
}
Журнал консоли:
INSTANCE : 159625389
INSTANCE : 178364275
INSTANCE : 190324272
...
Вопрос:
При вводе текста в поле EditText будет вызываться метод onMyTextChanged с временем выполнения = длиной введенного текста.
Следовательно, экземпляр класса MyValidation также увеличивается.
(См. Журнал)
Я думал об использовании Object вместо Class, чтобы сделать Singleton статическим. Но я путаю, что есть другое решение для этого случая?