有人可以帮忙吗?使用 Kotlin 的 onOptionsItemSelected 启动新活动

问题描述 投票:0回答:1

查看文档和线程后,我找不到适合我的案例的解决方案,我想知道我是否可以获得一些帮助/轻微的推动。我还没有完全理解这个功能,并且正在自学。

这是我所在的位置: 我有一个操作栏,操作栏上有一个汉堡包图标,单击汉堡包会出现滑出菜单。您将看到各种可供选择的菜单项,并带您进入新的活动。 (例如:主页、设置、登录等)选择任何菜单项或操作栏上的后退箭头后,滑出菜单将关闭。

问题: 我不知道如何使菜单项可以通过包含后退箭头进行选择。吐司适用于汉堡包图标,但不适用于主菜单项。非常感谢任何可以提供帮助的人!

解决方案:待定

HomeActivity.kt:

class HomeActivity : AppCompatActivity() {
    private lateinit var drawerLayout: DrawerLayout
    private lateinit var actionBarDrawerToggle: ActionBarDrawerToggle

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

        drawerLayout = findViewById(R.id.my_drawer_layout)
        actionBarDrawerToggle =
            ActionBarDrawerToggle(this, drawerLayout, R.string.nav_open, R.string.nav_close)
        drawerLayout.addDrawerListener(actionBarDrawerToggle)
        actionBarDrawerToggle.syncState()
        supportActionBar?.setDisplayHomeAsUpEnabled(true)

    override fun onOptionsItemSelected(item: MenuItem): Boolean {
        if (actionBarDrawerToggle.onOptionsItemSelected(item)) {
            Toast.makeText(applicationContext, "Clicked Hamburger", Toast.LENGTH_SHORT).show()
            return true
        }
        when (item.itemId) {
            R.id.nav_home -> {
                Toast.makeText(applicationContext, "Clicked Home", Toast.LENGTH_SHORT).show()
                return true
            }
        }
        return super.onOptionsItemSelected(item)
    }
    fun launchActivity1(view: View) {}
}
android kotlin menu menuitem
1个回答
0
投票

似乎你的 if (actionBarDrawerToggle.onOptionsItemSelected(item)) {} 条件始终为 true 并且下面的代码无法访问 - 尝试评论这部分

        if (actionBarDrawerToggle.onOptionsItemSelected(item)) {
            Toast.makeText(applicationContext, "Clicked Hamburger", Toast.LENGTH_SHORT).show()
            return true
        }

看看发生了什么

© www.soinside.com 2019 - 2024. All rights reserved.