Intereting Posts
Выразить «супер» дженерики в функциональных типах Котлина? Использование плюс равно оператору с байтами Охват кода студии Android, не показывающий классов Kotlin Kotlin IllegalAccessError с + = и – = для делегированного интерфейса Kotlin: Невозможно применить сразу два условных выражения с помощью стиля функции «возврат тела» Переопределяя метод Java @Nullable varargs в Котлине, IDE жалуется, что он ничего не отменяет Kotlin M11: Подавить «Функция никогда не используется» в IntelliJ 14.1 Написание модульных тестов в Котлине, обмен переменных? Intellij IDEA не останавливается на контрольных точках Kotlin при работе с JUnit Обработка аннотаций с помощью kapt Android Studio Функция Memoization в Котлине Использование метода получения Anko Ошибка несоответствия AnkoContext <ViewGroup> Найдено AnkoContext <Context> Kotlin DialogFragment editText редактируемый всегда null База данных Singleton Room в SyncAdapter для запуска LiveData Как обернуть текст в быстрой документации в IntelliJ?

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

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