在kotlin上等效实现Java接口 [英] equivalent implementing java interface on kotlin
本文介绍了在kotlin上等效实现Java接口的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我是Kotlin
的新手,我想知道如何在kotlin上实现Java接口,我在android上使用它,
I'm newbie in Kotlin
and i'm trying to know how can i implementing java interface on kotlin, i'm using that on android,
public interface OnClickedItemListener {
void onClick(boolean state);
}
OnClickedItemListener
是我要实现的自定义接口,在kotlin中,我有此类:
OnClickedItemListener
is my custom interface which i want to implementing that, in kotlin i have this class:
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 {
}
}
}
例如,这相当于此编码:
in that whats equivalent this cods for example:
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
}
}
希望这对您有所帮助.
这篇关于在kotlin上等效实现Java接口的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文