前提・実現したいこと
正しいid参照したい。
発生している問題・エラーメッセージ
flagment+viewPagerでタブ切り替えの機能を作成しています。
一通り記述が終わり実行してみるとアプリが強制終了してしまいます。
エラーを確認した所、
bookingPager.adapter = _adapterTabのbookingPagerの値がnullになっていました。
↓デバッグログとエラー文です
D/!adapterTab!: microwave.net.PGM.GolfCourseReservationApp.booking.TabBookingAdapter@65b42b4 D/!bookingPager!: null
Caused by: java.lang.NullPointerException: bookingPager must not be null at microwave.net.PGM.GolfCourseReservationApp.MainActivity.onCreate(MainActivity.kt:42) at android.app.Activity.performCreate(Activity.java:8000) at android.app.Activity.performCreate(Activity.java:7984) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3422) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3601) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:223) at android.app.ActivityThread.main(ActivityThread.java:7656) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
該当のソースコード
kotlin
1class MainActivity : AppCompatActivity() { 2 3// private var _adapterTab : TabBookingAdapter? = null 4 private lateinit var binding: ActivityMainBinding 5 6 override fun onCreate(savedInstanceState: Bundle?) { 7 super.onCreate(savedInstanceState) 8 9 binding = ActivityMainBinding.inflate(layoutInflater) 10 setContentView(binding.root) 11 12 val navView: BottomNavigationView = binding.navView 13 14 val navController = findNavController(R.id.nav_host_fragment_activity_main) 15 // Passing each menu ID as a set of Ids because each 16 // menu should be considered as top level destinations. 17 val appBarConfiguration = AppBarConfiguration(setOf( 18 R.id.navigation_home, R.id.navigation_booking, R.id.navigation_list)) 19 setupActionBarWithNavController(navController, appBarConfiguration) 20 navView.setupWithNavController(navController) 21 22 //タイトルバー非表示 23 supportActionBar?.hide() 24 25 var _adapterTab : TabBookingAdapter? = TabBookingAdapter(supportFragmentManager, this) 26 Log.d("!adapterTab!", ""+_adapterTab) 27 Log.d("!bookingPager!", ""+bookingPager) 28 bookingPager.adapter = _adapterTab 29 Log.d("!bookingPager!", ""+bookingPager) 30 tabBookingLayout.setupWithViewPager(bookingPager) 31 } 32}
↓xmlファイル、一部省略しています。
kotlin
1<androidx.viewpager.widget.ViewPager 2 android:id="@+id/bookingPager" 3 android:layout_width="match_parent" 4 android:layout_height="0dp" 5 android:layout_marginHorizontal="10dp" 6 android:layout_marginTop="20dp" 7 app:layout_constraintBottom_toTopOf="@+id/imageButton17" 8 app:layout_constraintEnd_toEndOf="parent" 9 app:layout_constraintStart_toStartOf="parent" 10 app:layout_constraintTop_toBottomOf="@+id/constraintLayout1"> 11 12 <com.google.android.material.tabs.TabLayout 13 android:id="@+id/tabBookingLayout" 14 android:layout_width="match_parent" 15 android:layout_height="wrap_content" 16 android:background="#dddddd" 17 app:tabBackground="@drawable/tab_color_selector" 18 app:tabIndicatorHeight="0dp" 19 app:tabSelectedTextColor="@color/white" 20 app:tabTextAppearance="@style/TabText" 21 app:tabTextColor="#3087DD"> 22 23 <com.google.android.material.tabs.TabItem 24 android:layout_width="wrap_content" 25 android:layout_height="wrap_content" 26 android:text="@string/normal_booking_tab" /> 27 28 <com.google.android.material.tabs.TabItem 29 android:layout_width="wrap_content" 30 android:layout_height="wrap_content" 31 android:text="@string/one_person_booking_tab" /> 32 33 </com.google.android.material.tabs.TabLayout> 34 35 </androidx.viewpager.widget.ViewPager>
試したこと
id周りでバグがあるのかと思いデザインビューでidを確認したのですがおかしな点は無かったです。
キャッシュのクリアも試してみたのですがエラーは消えませんでした。
少しでもわかる方がいましたらご教示お願いしたいです。
補足情報(FW/ツールのバージョンなど)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/01/19 01:02