前提・実現したいこと
アンドロイドアプリの開発をしております。
そのアプリのUIにはタブがあり、TabLayoutを用いてタブの機能を実現しようとしています。
作成したタブにOnTabSelectedListenerを追加し「どのタブが選択されているかによって表示するものを変える」という機能を実装しようとしています。
しかし、OnTabSelectedListenerにコンストラクタは必要ないはずなのに"Interface OnTabSelectedListener does not have constructors"というエラーが出てしまいます。
質問内容
- どうやったら"Interface OnTabSelectedListener does not have constructors"のエラーはなくなりますか?
- 自分はOnTabSelectedListenerにコンストラクタは必要ないはずなのに、なぜこのエラーは出たのでしょうか?
- 「タブごとに異なる表示をする機能をリスナーを用いて実装する」というのは実装方針として正しいですか?
(リスナーは「タブが選ばれた時に音を鳴らす」といった用途に用いるものであり、「タブが選ばれたら異なるFragmentを表示する」のは全く別の話なのでは?という疑問が出てきました)
該当のソースコード
kotlin
1import android.os.Bundle 2import android.support.design.widget.TabLayout 3import android.support.v7.app.AppCompatActivity 4import android.widget.FrameLayout 5 6class MainActivity : AppCompatActivity() { 7 8 override fun onCreate(savedInstanceState: Bundle?) { 9 super.onCreate(savedInstanceState) 10 setContentView(R.layout.activity_main) 11 12 var tabLayout = findViewById<TabLayout>(R.id.tabs) 13 var frameLayout = findViewById<FrameLayout>(R.id.tabContent) 14 15 tabLayout.addTab(tabLayout.newTab().setText(R.string.tab_calender)) 16 tabLayout.addTab(tabLayout.newTab().setText(R.string.tab_stack)) 17 18 // ↓の行の"OnTabSelectedListener"のところに赤い波線が出ています。 19 // エラー文は"Interface OnTabSelectedListener does not have constructors"です。 20 tabLayout.addOnTabSelectedListener(TabLayout.OnTabSelectedListener { 21 fun onTabSelected(tab: TabLayout.Tab) { 22 println("hello") 23 } 24 }) 25 } 26}
bundle.gradleのdependenciesは以下の通りです。
dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version" implementation 'com.android.support.constraint:constraint-layout:1.0.2' implementation 'com.android.support:support-v4:26.1.0' testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner:1.0.1' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1' compile 'com.android.support:appcompat-v7:23.1.0' // addOnTabSelectedListenerはcom.android.support:design:27.0.0 compile 'com.android.support:design:27.0.0' }
補足情報(FW/ツールのバージョンなど)
Android Studio 3.0.1

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/02/11 11:59