Я пытаюсь реализовать нижнюю навигацию с помощью Activity
и использую Kotlin. Итак, я ищу на YouTube и вижу много контента, который использует Fragment
для нижней навигации T_T
Поэтому я пытаюсь скопировать код с https://www.youtube.com/watch?v=JjfSjMs0ImQ потому что они используют Activity
, а не Fragment
Но проблема в том, что они используют Java. Поэтому я пытаюсь преобразовать код в Kotlin. А потом это случилось (Logcat)
Вызвано: java.lang.IllegalStateException: bottomNavigationView не должен иметь значение null в com.example.smscandroid.Profile.onCreate(Profile.kt:18)
Так что смотрю в Profile.kt
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_profile)
//init
val bottomNavigationView =
findViewById<BottomNavigationView>(R.id.bottom_navigation)
//Set
bottomNavigationView.selectedItemId = R.id.profile
//Perform ItemSelectedListener
bottomNavigationView.setOnNavigationItemSelectedListener(BottomNavigationView.OnNavigationItemSelectedListener { menuItem ->
when (menuItem.itemId) {
R.id.medication -> {
startActivity(
Intent(
applicationContext
, Medication::class.java
)
)
overridePendingTransition(0, 0)
return@OnNavigationItemSelectedListener true
}
R.id.home -> {
startActivity(
Intent(
applicationContext
, MainActivity::class.java
)
)
overridePendingTransition(0, 0)
return@OnNavigationItemSelectedListener true
}
R.id.profile -> return@OnNavigationItemSelectedListener true
}
false
})
}
Я думаю, что ошибка в
//init
val bottomNavigationView =
findViewById<BottomNavigationView>(R.id.bottom_navigation)
//Set
bottomNavigationView.selectedItemId = R.id.profile
Я думаю, что findViewById<BottomNavigationView>(R.id.bottom_navigation)
может получить null
, тогда bottomNavigationView.selectedItemId = R.id.profile
вызовет Exception
Это файл bottom_navigation.xml.
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/medication"
android:title="medication"
android:icon="@drawable/ic_medication"/>
<item
android:id="@+id/home"
android:title="home"
android:icon="@drawable/ic_home"/>
<item
android:id="@+id/profile"
android:title="profile"
android:icon="@drawable/ic_profile"/>
</menu>
Почему findViewById<BottomNavigationView>(R.id.bottom_navigation)
получает null
?
Если я что-то не так напишу, скажите, я исправлю.
R.layout.activity_profile
xml? - person Md. Asaduzzaman   schedule 30.01.2020