Android 在kotlin上等效实现java接口

Android 在kotlin上等效实现java接口,android,kotlin,Android,Kotlin,我是Kotlin的新手,我想知道如何在Kotlin上实现java接口,我正在android上使用它 public interface OnClickedItemListener { void onClick(boolean state); } OnClickedItemListener是我想要实现的自定义接口,在kotlin中,我有这样一个类: class MyProgressView : RelativeLayout { constructor(context: Contex

我是Kotlin的新手,我想知道如何在Kotlin上实现java接口,我正在android上使用它

public interface OnClickedItemListener {
    void onClick(boolean state);
}
OnClickedItemListener
是我想要实现的自定义接口,在kotlin中,我有这样一个类:

class MyProgressView : RelativeLayout {
    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)
        cusotmView.setOnClickListener {
        }
    }
}
在这种情况下,该代码的等效值是什么,例如:

class MyProgressView : RelativeLayout {
    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)
        cusotmView.setOnClickListener {
            /*
            if(onitemClickListener!=null) onitemClickListener.onClick()
            */
        }
    }

    /*
    public interface OnitemClickListener{
        void onClick();
    }

    public static void setOnitemClickListener(OnitemClickListener listener){
        onitemClickListener = l;
    }
    */

}

在活动中使用setOnClickItemListener

class MyProgressView : RelativeLayout, OnClickedItemListener  {

    var onClickItemListener: OnClickedItemListener? = null

    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)
    }

    override fun onClick(state: Boolean) {
        //do something on onclick
    }

    fun setOnClickedItemListener(onclickItemListener: OnClickedItemListener) {
        this.onClickItemListener = onclickItemListener
    }

}

我希望这可能会对您有所帮助。

谢谢,现在我如何在活动中使用此已实现的侦听器?例如:
MyProgressView.setOnitemClickListener(新的OnitemClickListener(){};