Я пишу словарь приложения. У меня есть один вид деятельности и три фрагмента. Активность включает в себя панель инструментов, tabLayout и viewpager. Я добавил editext на панель инструментов.
Я хочу переместить данные, введенные в edittext, из действия во фрагмент, используя метод addChangedListener. Я написал интерфейс или модель общего вида, но не могу захватить данные по фрагментам без нажатия клавиши ввода на клавиатуре.
Можете ли вы мне помочь?
Мой метод onTextChanged
override fun onTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
searchViewModel.setName(p0.toString())
}
Я написал View Model Class:
class SearchViewModel: ViewModel () {
private val mName = MutableLiveData<String>()
fun setName(name: String) {
mName.value = name
}
fun getName(): LiveData<String>? {
return mName
}
}
и написал Fragment Class в методе onViewCreated:
pageViewModel = activity.run {
ViewModelProvider(this!!).get(SearchViewModel::class.java)
}
pageViewModel.getName()!!.observe(viewLifecycleOwner,
Observer<String?> {
print("ümit $it")
})
Спасибо за ответ, хорошего вам дня.