2017-06-18 21 views
2

私はkotlin-android-extensionを使用しており、レイアウトファイルからkotlinファイルにbottomNavigationView idを呼び出すことができます。私はbottomNavigationView.setOnNavigationItemSelectedListener(BottomNavigationView.OnNavigationItemSelectedListener {})を使うことができますが、次に何ですか?Kotlinを使用してAndroidでBottomNavigationViewのOnNavigationItemListenerを設定する方法は?

私がJavaで知っている限り、onNavigationItemSelectedという別の機能がありますが、私はkotlinで見つけることができません。

これはJavaで使用したいコードですが、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

アンドロイドスタジオのjava to kotlinコンバータを使用 –

+0

このアプリは既に最初からkotlinを使用していますので、私はkotlinを正しく書くことができますか? kotlineファイルにJavaを書き込まないでください。 –

+0

あなたはそれをコピーして自動変換することができることが分かります –

答えて

4

あなたはこのコードの形式を使用することができます。setOnNavigationItemSelectedListenerは、戻り値の型を想定しているため

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

「真実」は何を表していますか? – Chris

+0

申し訳ありませんが、 "return"式は最後の編集中に誤ってコードから削除されています。 私は今それを修正しました。おかげさまで @Chris – Glory

+0

設定したときにtrueが返されます。このエラーメッセージが表示されるのはfalseです。それは何ですか.. –

0

使用はリターンのために、各ブロック内のラムダのみ

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

      R.id.group -> {} 

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

リターン・ブールを注釈を追加する必要があります

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

    } 
} 
関連する問題