Оптимизация обработчика событий
Есть MainActivity, в которой обрабатываются нажатия на кнопки (приведу простой пример):
crc_add.setOnClickListener {
startActivity(Intent(this, AddPostActivity::class.java))
}
Также есть функции:
private fun moveToFragmentProfile(fragment: Fragment)
{
val fragmentTrans = supportFragmentManager.beginTransaction()
fragmentTrans.replace(R.id.fragment_container_profile, fragment)
fragmentTrans.commit()
notifications_content_btn?.visibility = View.VISIBLE
search_content_btn?.visibility = View.VISIBLE
}
private fun visibleButtons() {
semicircle?.visibility = View.GONE
circle?.visibility = View.GONE
circle_small?.visibility = View.GONE
circle_search?.visibility = View.GONE
circle_notifications?.visibility = View.GONE
circle_add_post?.visibility = View.GONE
smooth_bg?.visibility = View.GONE
}
Есть и такие обработчики (при нажатии кнопки не просто происходит какое-то действие, а срабатывает функция):
profile_content_btn.setOnClickListener {
moveToFragmentProfile(ProfileFragment())
srcBtn.setImageResource(R.drawable.search)
ntfBtn.setImageResource(R.drawable.notifications)
profile_content_btn.visibility = View.GONE
visibleButtons()
}
Я бы хотел создать отдельный kotlin-файл, в котором бы хранились эти обработчики, а в самой активити просто оставлять некую ссылку на этот файл при нажатии на кнопку. Как я могу это реализовать?
Ответы (1 шт):
Автор решения: doomsilka
→ Ссылка
Можешь унаследоваться от ClickLisnera. Но что бы иметь в нем доступ к вьюшкам, их(вьюшки) нужно будет передавать в конструктор.