Intereting Posts
Kotlin – Перегрузка оператора вызовом оператора Ошибка плагина Kotlin: не удалось создать прокси-класс для класса org.jetbrains.kotlin.gradle.tasks.KotlinCompile установить UserDefaultsKeys (swift) в kotlin Пункт Onclick RecyclerView Kotllin Android Kotlin DSL для создания объектов json (без создания мусора) Как заставить вызовы некоторым конструкторам / функциям использовать именованные аргументы? Передача собственности другому имуществу Создайте счетчик, который изменяет его ширину при выборе элемента Почему я не могу ссылаться на вложенный объект из val или typealias, ссылающихся на объект? Компонентные объекты в интерфейсах Котлина Анимационный набор, эффект встряхивания Преобразование процедурных методов стиля в функциональный стиль как добавить gradle (идеально используя kotlin-dsl) в существующий проект intellij python Список, содержащий значения NULL, в NULL-список в Kotlin Как написать надлежащий тест для реактивного репозитория интерфейса, который возвращает Observable только в том случае, когда есть какое-то событие, как издеваться над запуском этого события

эквивалентный интерфейс 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; } */ } 

Solutions Collecting From Web of "эквивалентный интерфейс java на kotlin"

используйте 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 } } 

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