эквивалентный интерфейс java на kotlin

Я новичок в Kotlin и я пытаюсь понять, как я могу реализовать java-интерфейс на kotlin, я использую это на 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 } } 

Надеюсь, это может вам помочь.

Intereting Posts
Доступ к типу делегата Kotlin без экземпляра Используется плагин kotlin-spring, все еще получающий класс не открытую ошибку Инициализация многопоточных массивов в Котлине Dagger 2 обменивается экземпляром объекта между ведущими Можно ли отключить подсказки для неназванных параметров в Android Studio? Сбой приложения при создании стопки java.lang.ClassNotFoundException: com.intellij.junit5.JUnit5IdeaTestRunner, используя spek в kotlin Метод копирования класса данных Kotlin не выполняет глубокое копирование всех членов Kotlin: зачем мне инициализировать var с помощью пользовательского getter? Как изменить исходный код для компиляции класса Kotlin с помощью настраиваемого плагина Intellij Idea Невозможно скомпилировать функцию расширения с параметром типа reified в Kotlin Настройка Kotlin в новом проекте Android Studio Тонкий diff при запуске в intellij и выполнении jar Kotlin – Наследовать от Java-класса, который реализует Parcelable Codename. Ошибки сборки, связанные с Kotlin