內容目錄

建立一個新的 Activity 來做為目標 Activity

建立一個 Empty Activity,在此以 AboutActivity 為例,其內容無需更改

建立 Toolbar 的 Menu

New -> Android Resource File ,File name 填入 menu_toolbar,Resource type 選 Menu

menu_toolbar.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@+id/action_about"
        android:title="關於"
        app:showAsAction="ifRoom" />

</menu>

讓 Activity 載入 menu,並設定 menu 的回應

MainActivity.kt

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val toolbar = findViewById<MaterialToolbar>(R.id.toolbar)
        setSupportActionBar(toolbar)
    }

    override fun onCreateOptionsMenu(menu: Menu?): Boolean {
        menuInflater.inflate(R.menu.menu_toolbar, menu)
        return super.onCreateOptionsMenu(menu)
    }

    override fun onOptionsItemSelected(item: MenuItem): Boolean {
        when(item.itemId) {
            R.id.action_about-> {
                startActivity(Intent(this, AboutActivity::class.java))
                return true
            }
        }
        return super.onOptionsItemSelected(item)
    }
}

執行 app 時,可看到右上角出現「關於」,按下後,就會導航到 AboutActivity。

AboutActivity 並沒有 Toolbar,因為我們在 themes 裏設定為 NoActionBar,必須參照前一個 Kata 來設定其內容。

Last modified: 2022 年 10 月 13 日

Author

Comments

Write a Reply or Comment

Your email address will not be published.