NavigationView onNavigationItemSelected не вызывается - PullRequest
1 голос
/ 21 мая 2019

вчера я установил свой первый NavigationView и хотел бы добавить слушателей к пунктам меню.Я пытался сделать это следующим образом: Android Kotlin - Невозможно вызвать метод onNavigationItemSelected , но кажется, что onNavigationItemSelected не вызывается.

Что я сделал.

1. Я добавил NavigationView.OnNavigationItemSelectedListener в основной класс:

class MainActivity : AppCompatActivity(), NavigationView.OnNavigationItemSelectedListener {

2. Слушатели настроек:

val mNavigationView = findViewById<View>(R.id.nav_view) as NavigationView
            mNavigationView.setNavigationItemSelectedListener(this)

3.Проверенный метод onNavigationItemSelected

override fun onNavigationItemSelected(item: MenuItem): Boolean {
    Log.d(LOG_TAG, "hello there")
    return true
}

ИЯ ожидал, что это должно, но это, вероятно, не называется.Можете ли вы помочь мне?

1 Ответ

0 голосов
/ 21 мая 2019

Итак, проблема была вызвана созданием новой активности для входа пользователя.

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main_with_nav)

    val mNavigationView = findViewById<View>(R.id.nav_view) as NavigationView
    mNavigationView.setNavigationItemSelectedListener(this)

    //start login action
    // In the future I will check here some session, but for debbuging I want to log every time
    if(true){
        val intent = Intent(applicationContext, LoginActivity::class.java)
        startActivity(intent)
    }

После входа в систему я изменил вид на основной, но не завершил эту процедуру входа в систему.Таким образом, все, что мне нужно было сделать, - это завершить вызов () после смены вида на главный.

activity.setContentView(R.layout.activity_main_with_nav);
activity.finish()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...