昨天,我设置了我的第一个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
}
我期望那应该,但是可能没有被调用。 你能帮我吗?
答案 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()