Android 在kotlin上等效实现java接口
我是Kotlin的新手,我想知道如何在Kotlin上实现java接口,我正在android上使用它Android 在kotlin上等效实现java接口,android,kotlin,Android,Kotlin,我是Kotlin的新手,我想知道如何在Kotlin上实现java接口,我正在android上使用它 public interface OnClickedItemListener { void onClick(boolean state); } OnClickedItemListener是我想要实现的自定义接口,在kotlin中,我有这样一个类: class MyProgressView : RelativeLayout { constructor(context: Contex
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
}
}
我希望这可能会对您有所帮助。谢谢,现在我如何在活动中使用此已实现的侦听器?例如:
MyProgressView.setOnitemClickListener(新的OnitemClickListener(){};