不会调用NavigationView onNavigationItemSelected

时间:2019-05-21 06:12:29

标签: android kotlin

昨天,我设置了我的第一个NavigationView,我想在菜单项中添加侦听器。我正在尝试通过以下方式做到这一点:Android Kotlin - Can't call onNavigationItemSelected method,但似乎未调用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 :(得分:0)

因此,问题是由创建用于记录用户的新活动引起的。

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)
    }

登录后,我将视图更改为主视图,但未完成该登录活动。因此,在将视图更改回主视图之后,我要做的就是调用finish()。

activity.setContentView(R.layout.activity_main_with_nav);
activity.finish()