У меня есть навигационный ящик в моем приложении, и у меня есть несколько элементов, и я хочу, чтобы элемент «Регистрация» был невидимым, если пользователь входит в систему, а заголовок «Логин» меняется на «Выход из системы». Я искал пути чтобы сделать это, но я продолжал получать ошибки.
Это выглядит так:
У меня есть класс, где я храню свой код навигации внутри, который я вызываю в другие действия, которые выглядят следующим образом:
class NavigationHandler(val context: Context, val item: MenuItem) : AppCompatActivity() {
operator fun invoke() {
when (item.itemId) {
R.id.nav_latestAds -> {
val homeIntent = Intent(context, MainActivity::class.java)
context.startActivity(homeIntent)
}
R.id.nav_cars -> {
val carListIntent = Intent(context, CarsList::class.java)
context.startActivity(carListIntent)
}
R.id.nav_properties -> {
val carListIntent = Intent(context, PropertyList::class.java)
context.startActivity(carListIntent)
}
R.id.nav_mobiles -> {
val intent = Intent(context, MobileList::class.java)
context.startActivity(intent)
}
R.id.nav_electDev -> {
val homeIntent = Intent(context, ElectricsList::class.java)
context.startActivity(homeIntent)
}
R.id.nav_furniture -> {
val intent = Intent(context, FurnitureList::class.java)
context.startActivity(intent)
}
R.id.nav_vendorReg -> {
val intent = Intent(context, RegisterVendor::class.java)
context.startActivity(intent)
}
R.id.nav_settings -> {
val intent = Intent(context, Settings::class.java)
context.startActivity(intent)
}
R.id.nav_logout -> {
if (AuthService.isLoggedIn) {
UserDataService.logout()
} else {
val loginIntent = Intent(context, Login::class.java)
context.startActivity(loginIntent)
}
}
}
}
}
Вот как я называю это в других действиях:
override fun onNavigationItemSelected(item: MenuItem): Boolean {
NavigationHandler(this, item)()
drawerLayout.closeDrawer(GravityCompat.START)
return true
}
я ошибаюсь, создавая ящик таким образом?