2

J'utilise kotlin-android-extension et je peux appeler le bottomNavigationView du fichier layout au fichier kotlin. Je peux utiliser bottomNavigationView.setOnNavigationItemSelectedListener(BottomNavigationView.OnNavigationItemSelectedListener {}), mais quoi de plus? Pour autant que je sache dans Java, il existe une autre fonction appelée onNavigationItemSelected, mais je ne la trouve pas dans kotlin.Comment définirOnNavigationItemListener sur BottomNavigationView dans android en utilisant Kotlin?

Ceci est l'exemple de code que je veux utiliser en Java mais je ne peux pas l'écrire dans kotlin.

bottomNavigationView.setOnNavigationItemSelectedListener(
    new BottomNavigationView.OnNavigationItemSelectedListener() { 
     @Override 
     public boolean onNavigationItemSelected(@NonNull MenuItem item) { 
      switch (item.getItemId()) { 
       case R.id.action_favorites: 

       case R.id.action_schedules: 

       case R.id.action_music: 

      } 
      return true; 
     } 
    }); 
+0

Utilisez le convertisseur java to kotlin dans le studio Android –

+0

cette application utilise déjà kotlin depuis le début, donc je ne peux écrire kotlin droite? pas écrire Java dans le fichier kotline. –

+0

suffit de réaliser que vous pouvez copier le coller et le convertir automatiquement –

Répondre

4

Vous pouvez utiliser ce format de code:

bottomNavigation.setOnNavigationItemSelectedListener { item -> 
     when (item.itemId) { 
      R.id.action_favorites -> { 
      } 
      R.id.action_schedules -> { 
      } 
      R.id.action_music -> { 
      } 
     } 
     return true 
    } 
+0

Qu'est-ce que ce "vrai" signifie? – Chris

+0

Désolé, l'expression "return" est supprimée par erreur du code lors de la dernière modification. Je l'ai réparé maintenant. Merci. @Chris – Glory

+0

lorsque j'applique retourner vrai ce message d'erreur d'affichage, seulement faux garder l'erreur propre. Qu'est-ce que c'est .. –

0

utilisation doit ajouter une annotation pour le retour lambda ne

bottomNavigation.setOnNavigationItemSelectedListener { item -> 
     when(item.itemId){ 
      R.id.home -> {} 

      R.id.group -> {} 

      R.id.profile -> {} 
     } 
     [email protected] true 
    } 
1

booléenne de retour dans chaque bloc, car setOnNavigationItemSelectedListener attend le type de retour

fun initViews() { 
    bottomNavigationView.setOnNavigationItemSelectedListener { item -> 
     when (item.itemId) { 
      R.id.action_menu_media -> { 
       true 
      } 
      R.id.action_menu_tag -> { 
       true 
      } 
      R.id.action_menu_home -> { 
       true 
      } 
      else -> { 
       true 
      } 
     } 

    } 
}