如何从该库调用侦听器

问题描述

如何从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;
  }
});

这里我使用了演示项目,但是您可以使用一个开关块并根据需要进行正确的实现