Я пытаюсь создать простой customVeiw с двумя кнопками и одним textView. Мне нужно было нажать на textView, чтобы выполнить некоторые действия для каждого из customView.
Вот некоторые части моего кода для customView
class myCustomview{
//...
//...
interface ButtonClickListener
{
fun onCityButtonClick(v: View)
}
private lateinit var buttonClickListener: ButtonClickListener
fun setButtonClickListener(listener: ButtonClickListener)
{
this.buttonClickListener = listener
}
//...
//...
override fun onClick(v: View?)
{
when(v?.id)
{
btn.id->
{
fun2()
}
btn.id->
{
fun1()
}
textView.id->
{
if (buttonClickListener != null)
{
buttonClickListener.onCityButtonClick(textValue)
}
}
}
}
и используется во фрагменте:
class myFragment : Fragment(), CustomValueSelector.ButtonClickListener
{
//...
override fun onViewCreated(view: View, savedInstanceState: Bundle?)
{
//...
idMyCustomView.setButtonClickListener( this)
}//onViewCreated
//...
override fun onCityButtonClick(v: View)
{
Toast.makeText(context," always null",Toast.LENGTH_SHORT).show()
}
//...
}//end class
Почему это условие всегда верно?
(buttonClickListener! = null)
и слушатель условия всегда равен нулю в этой функции
fun setButtonClickListener(listener: ButtonClickListener)
{
this.buttonClickListener = listener
}
и когда запуск приложения и нажатие приложения textView прекратилось с ошибкой KotlinNullPointerException