在java中使用Kotlin库

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在java中使用Kotlin库相关的知识,希望对你有一定的参考价值。

我试图在android Studio中使用GitHub库(MeowBottomNavigation)。但是它用kotlin编写,我不能使用它中的监听器。唯一给出的就是这个

bottomNavigation.setOnShowListener {
}

bottomNavigation.setOnClickMenuListener {
}

建议显示使用

(功能1)

我不确定如何在java中实现它。任何帮助将不胜感激。

我熟悉java但是这个库是用Kotlin编写的。有没有办法在java中使用这些监听器?

bottomNavigation.setOnClickMenuListener(new 
Function1<MeowBottomNavigation.Model, Unit>() {
        @Override
        public Unit invoke(MeowBottomNavigation.Model p1) {
            int i = p1.getId();
            switch (i){
                case 4:
                    Toast.makeText(UserMainActivity.this, i, Toast.LENGTH_SHORT).show();
                    break;
                case  1:
                    Toast.makeText(UserMainActivity.this, i, Toast.LENGTH_SHORT).show();
                    break;
                case 2:
                    Toast.makeText(UserMainActivity.this, i, Toast.LENGTH_SHORT).show();
                    break;
                case 3:
                    Toast.makeText(UserMainActivity.this, i, Toast.LENGTH_SHORT).show();
                    break;
            }
            return Unit.INSTANCE;
        }
    });
答案

Function0,Function1,Function2,... FunctionN是kotlin中的高阶函数。

转换为java后,您的点击侦听器将变为如下所示。

// Set Menu Click Listener 
bottomNavigation.setOnClickMenuListener(new Function1<MeowBottomNavigation.Model, Unit>() {
        @Override
        public Unit invoke(MeowBottomNavigation.Model p1) {
            return Unit.INSTANCE;
        }
    });

// Set Menu Show listener
bottomNavigation.setOnShowListener(new Function1<MeowBottomNavigation.Model, Unit>() {
        @Override
        public Unit invoke(MeowBottomNavigation.Model s) {
            return Unit.INSTANCE;
        }
    });
另一答案

像This这样的东西::

bottomNavigation.setOnShowListener( new IBottomNavigationListener(Model model)
{


} );

以上是关于在java中使用Kotlin库的主要内容,如果未能解决你的问题,请参考以下文章

Kotlin - 如何将空值传递给片段 newInstance 方法?

使用 Kotlin 更改片段中的按钮背景

如何从片段 KOTLIN 中调用意图 [重复]

如何在kotlin的片段内显示网格视图?

使用导航从工具栏菜单项单击在片段之间传递数据 - Kotlin

在 Java 项目中使用 Kotlin 库作为依赖项