Использование библиотеки Kotlin в Java - PullRequest
2 голосов
/ 29 марта 2019

Я пытаюсь использовать библиотеку GitHub (MeowBottomNavigation) в Android Studio. Но она написана на 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 ]

2 голосов
/ 29 марта 2019

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;
        }
    });
0 голосов
/ 29 марта 2019

что-то вроде этого ::

bottomNavigation.setOnShowListener( new IBottomNavigationListener(Model model)
{


} );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...