在Java中使用Kotlin库

时间:2019-03-29 07:21:02

标签: java android kotlin

我试图在Android Studio中使用GitHub库(MeowBottomNavigation),但是它是用kotlin编写的,我无法在其中使用侦听器。 唯一给出的就是这个

bottomNavigation.setOnShowListener {
}

bottomNavigation.setOnClickMenuListener {
}

建议显示使用

(Function1)

我不确定如何在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;
        }
    });

2 个答案:

答案 0 :(得分:2)

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;
        }
    });

答案 1 :(得分:0)

类似这样的东西:

bottomNavigation.setOnShowListener( new IBottomNavigationListener(Model model)
{


} );