[Android/Kotlin]戻るボタンを実装

目次

概要

Androidでは戻るボタンが端末に搭載されているうえ、画面左端から右へスワイプさせると前の画面へ戻ることができるが、やはり画面に表示されていた方がわかりやすい。
また、場合によっては表示させないようにしたいときもあると思う。
表示・非表示を切り替える方法を記載する

ソースコード

画面遷移後のソースコードのみ記載

Kotlin
class SubActivity : AppCompatActivity() {

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

        supportActionBar?.setDisplayHomeAsUpEnabled(false)
        supportActionBar?.title = title
    }
    
    override fun onOptionsItemSelected(item: MenuItem): Boolean {
        var returnVal = true
        when(item.itemId) {
            android.R.id.home -> {
                finish()
                Log.d("itemId", "android.R.id.home")
            }
            else -> {
                returnVal = super.onOptionsItemSelected(item)
                Log.d("else", returnVal.toString())
            }
        }
        return returnVal
    }
}
Kotlin

詳細

要するに、Activityクラスに搭載されているsetDisplayHomeAsUpEnabledメソッドを呼び出す。

setDisplayHomeAsUpEnabledの引数動作結果
true戻るボタンが表示される
false戻るボタンが非表示になる

戻るボタンを押下した時に処理を追加する

onOptionsItemSelectedメソッドをoverrideすることで実装ができる。
item.itemIdで処理を分岐させることができる。
一例として、戻るボタンの場合は「android.R.id.home」となっている。
詳細は参照ページのAndroidデベロッパー(メニュー)を参照。

参照ページ:
【kotlin】アクションバー 戻るボタンを追加
Androidデベロッパー(メニュー)