Kotlin添加自定义监听器在Android上点击小部件

我是Kotiln的新手,这个代码是我在Android上使用的简单类。 在这个类中,我想做一个简单的监听器来检测一个类的内部项目的点击,比如activity,fragment或者adapter。 我的问题是,我可以为circularProgressView小部件定义此侦听器。

 class DownloadProgressView : RelativeLayout { var progressListener: ((downloading: Boolean) -> Unit)? = null private var downloading = false constructor(context: Context?) : super(context) { init() } constructor(context: Context?, attrs: AttributeSet?) : super(context, attrs) { init() } constructor(context: Context?, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr) { init() } private fun init() { LayoutInflater.from(context).inflate(R.layout.download_progress_layout, this) circularProgressView.setOnClickListener { downloading = !downloading setProgressViews(downloading) progressListener?.invoke(downloading) //if listener!=null then onItemClicked.onClick(); } } } 

如何知道用户是否点击了活动中的circularProgressView

我试图实现这个接口,并在Kotlin中使用它:

 public interface OnItemClickListener { void onClick(int position); } 

对于init progreessListener,使用以下代码

 var progressListener: OnItemClickListener? = null set 

对于call onClick使用: progressListener?.onClick(downloading)

接口文件:

 public interface OnItemClickListener { void onClick(boolean download); } 

为了实现你的接口使用下面的代码:

 var onItemClickInterface : OnItemClickListener = object : OnItemClickListener { override fun onClick(download: Boolean) { TODO("not implemented") //To change body of created functions use File | Settings | File Templates. } }