1
1

More than 3 years have passed since last update.

kotlinとjavaで前の画面に戻りたい!

Posted at

はじめに…

この記事は5個前の記事で書いた、

7日間毎日記事投稿の6日目

になってます

使うコードは下に貼りますが、このアプリの詳しい機能はその5個前の記事をご覧ください!

↓ここからが今回の記事の本題です↓

それぞれの言語で前の画面に戻るには…

※これはツールバーの戻るボタンから一つ前の画面に戻るための方法です

ツールバーの実装方法

  • javaの場合
Toolbar 変数名 = findViewById(R.id.ツールバーのid);
setSupportActionBar(変数);

例)

WhoActiity.java
Toolbar whoTb = findViewById(R.id.who_tb);  // 30行目
setSupportActionBar(whoTb);
  • kotlinの場合
setSupportActionBar(ルバid)

例)

WhoActivity.kt
setSupportActionBar(who_tb)  // 21行目

javaはToolBar型の変数を作る必要があるが、kotlinは作る必要がない

ツールバーに戻るボタンをつけて戻る方法

  • javaの場合

(onCreate関数内)

getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);

(onCreate関数外)

@Override
public boolean onSupportNavigateUp() {
    finish();
    return super.onSupportNavigateUp();
}

例)
(onCreate関数内)

WhoActivity.java
getSupportActionBar().setDisplayShowHomeEnabled(true);  // 32行目
getSupportActionBar().setDisplayHomeAsUpEnabled(true);

(onCreate関数外)

WhoActivity.java
@Override  // 69行目
public boolean onSupportNavigateUp() {
    finish();
    return super.onSupportNavigateUp();
}
  • kotlinの場合
supportActionBar?.let {  // 22行目
    it.setDisplayHomeAsUpEnabled(true)
    it.setHomeButtonEnabled(true)
} ?: IllegalAccessException("Toolbar cannot be null")
AndroidManifest.xml
<activity
    android:name=".WhoActivity"
    android:parentActivityName=".MainActivity" />  // ←ここを追加

例)

WhoActivity.kt
supportActionBar?.let {  // 22行目
    it.setDisplayHomeAsUpEnabled(true)
    it.setHomeButtonEnabled(true)
} ?: IllegalAccessException("Toolbar cannot be null")
AndroidManifest.xml
<activity  // 20行目
    android:name=".WhoActivity"
    android:parentActivityName=".MainActivity" />

javaはコードと新しく関数を定義する必要があり、kotlinはコードとAndroidManifest.xmlを編集する必要がある

最後に…

今回はjavaとkotlinでツールバーを使って前の画面に戻りました。
どちらの言語でも画面遷移よりも複雑なコードが必要だと感じました。

明日も記事を投稿するので、引き続き温かく見守ってください。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1