在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 方法?