布団の中にいたい

Elasticsearchいじったり、Androidアプリ書いたり。最近は数学の勉強が楽しくなってきました。

AndroidのToolbarに戻るボタンをつける

Listの要素をタップしたら別のActivityに遷移してWebViewを表示する,みたいな挙動な挙動を実装しようとしているが,前回端末の戻るボタンを押したときにページバックするという実装を行ったせいでどんどんリンク先に進んでいくと前のActivityに戻りづらくなってしまいました.今回はToolbarに戻るボタンを表示して,戻るボタンがタップされたときに,前のActivityに戻るという挙動を実装しました.

やることはかなり単純.そもそもToolbar自体に戻るボタン(Home)を表示するかどうかというメソッドがあるので,それをtrueにして,戻るボタンがタップされたときに,現在のActivityを終了するというだけ.以下はそのコード.だいたい簡略化してますが.

class SampleActivity : AppCompatActivity() {

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

        val toolBar = findViewById(R.id.toolBar) as Toolbar
        val webView = findViewById(R.id.webView) as WebView

        setSupportActionBar(toolBar)

        // Toolbarに戻るボタンを表示する
        supportActionBar!!.setDisplayHomeAsUpEnabled(true)
        webView.loadUrl(url)
    }

    override fun onOptionsItemSelected(item: MenuItem?): Boolean {
        when (item!!.itemId) {
            // 戻るボタンが押されたら
            android.R.id.home -> {
                // 現在のActivityを終了する
                finish()
            }
        }

        return super.onOptionsItemSelected(item)
    }
}