Надеюсь, простой запрос; в моем фрагменте я установил несколько прослушивателей кликов:
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
Log.d(TAG, "onCreateView()")
activity?.let {
businessViewModel = ViewModelProvider(it).get(BusinessViewModel::class.java)
Log.d(TAG, "businessViewModel = ${businessViewModel.toString()}")
}
// Inflate the layout for this fragment
val binding: SitesFragmentBinding = DataBindingUtil.inflate(
inflater, R.layout.sites_fragment, container, false
)
binding.apply {
sitesOverflowOptionsMenuButton.setOnClickListener {
showPopUp(it)
Log.d(TAG, "sitesOverflowOptionsMenuButton clicked, showPopUp(it)")
}
sitesDrawerMenuButton.setOnClickListener {
(activity as BusinessActivity).openCloseNavigationDrawer()
Log.d(TAG, "sitesDrawerMenuButton clicked, openCloseNavigationDrawer()")
}
sitesFloatingActionButtonAdd.setOnClickListener {
businessViewModel.getCurrentSite("")
navController.navigate(R.id.action_sitesFragment_to_siteAddEditFragment)
Log.d(TAG,"sitesFloatingActionButtonAdd clicked, navigating to siteAddEditFragment")
}
sitesClearIconImageView.setOnClickListener {
sitesSearchFilterEditTextView.text.clear()
}
sitesFilterIconImageView.setOnClickListener {
filterDialog()
}
sitesFilterIconImageView.setOnLongClickListener{
// This doesn't work - type mismatch, required Boolean, found Unit
}
}
return binding.root
}
Как указано выше, setOnClickListener имеет несоответствие типа (требуется Boolean, найдено Unit).
Он предлагает создать функцию расширения, но я могу ' Кажется, это не работает ..