我试图用两个按钮和一个textView创建一个简单的customVeiw。我需要单击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