问题描述
如何从Java项目上的该库中调用侦听器。
https://github.com/ImangazalievM/CircleMenu
我尝试过:
CircleMenu circleMenu = (CircleMenu) findViewById(R.id.circleMenu);
circleMenu.setonItemClickListener(new Function1<CircleMenu,Unit>() {
@Override
public Unit invoke (CircleMenu buttonIndex) {
return Unit.INSTANCE;
}
});
但这是行不通的!。
来自编译器的错误
方法'com.imangazaliev.circlemenu.Ci 'com.imangazaliev.circlemenu.CircleMenu'中的rcleMenu.setonItemClickListener(kotlin.jvm.functions.Function1 )' 不能应用于'(easy.lib.manager.dev.MainActivity。(anonymous))'
有人可以帮助我吗?
解决方法
在您提供的链接上写为:
处理菜单项的点击:
val circleMenu = findViewById<CircleMenu>(R.id.circleMenu); circleMenu.setOnItemClickListener { menuButton -> }
您可以执行以下操作检查其是否有效:
circleMenu.setOnItemClickListener{circleMenu ->
Toast.makeText(this,"Hoorrayy,It works",Toast.LENGTH_LONG).show()
}
,
我设法使其正常工作。开始之前,您需要将Kotlin依赖项添加到项目https://developer.android.com/kotlin/add-kotlin。
circleMenu.setOnItemClickListener(new Function1<Integer,Unit>() {
@Override
public Unit invoke(Integer buttonIndex) {
String text;
switch (buttonIndex) {
case 0:
text = "Favorite";
break;
case 1:
text = "Search";
break;
case 2:
text = "Alert";
break;
case 3:
text = "Place";
break;
case 4:
text = "Edit";
break;
default:
text = "Not Supported";
}
Toast.makeText(MainActivity.this,text,Toast.LENGTH_SHORT).show();
return Unit.INSTANCE;
}
});
这里我使用了演示项目,但是您可以使用一个开关块并根据需要进行正确的实现