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

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

  • Ошибка в findViewById после обновления для компиляции версии sdk
  • Kotlin Dokka - Не удается найти задачу Dokka в андроид-студии
  • Комната Android: каждая переменная связывания в запросе должна иметь соответствующий метод
  • Как использовать selectableButtonBackground на Anko?
  • Как установить нижнюю границу для FAB в макете Anko DSL?
  • Котлин андроид ошибка ProGuard
  • Динамически создавать элементы управления в android с помощью Kotlin
  • Как работать с большим количеством в Android Kotlin Apps?
  • Неожиданные жетоны (используйте, чтобы разделить выражения в одной строке) в котлин
  • Dagger 2 не генерирует компонентный класс (Android, Kotlin)
  • Anko DSL с ArrayAdapter
  • Interesting Posts

    IllegalArgumentException: savedInstanceState Указано как Non-Null Null

    Как я могу создать «статический» метод для перечисления в Котильне?

    Что означает предупреждение «Использовать свойства из пакетов вариантов сборки»?

    Поддержка Kotlin для @ColorInt Java Annotation

    Пользовательский вертикальный просмотрщик не работает с прослушивателем onClick в дочернем представлении

    Kotlin / Android: возвращение может быть отменено из «когда»

    Приложение Kotlin не показывает мой json-массив

    Параметр, заданный как non-null, равен null для данных в onActivityResult

    Как заменить FrameLayout фрагментом на Kotlin на Android

    rxjava2 – простой пример выполнения задач в пуле потоков, подписывается на один поток

    Невозможно инициализировать парсер объектов для модели. Продукты, не найдены приемлемые конструкторы

    Весна @ Работает в Котлине

    Получите дополнительную строку от активности Kotlin

    RX java / Android Как достичь этого тоста на каждом клике с помощью оператора debounce

    Как получить общий класс param в Котлине?

    Давайте будем гением компьютера.