Help us understand the problem. What is going on with this article?

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

はじめに…

この記事は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でツールバーを使って前の画面に戻りました。
どちらの言語でも画面遷移よりも複雑なコードが必要だと感じました。

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

sato-na
理系女子の大学2年生です。 これから幅広く学んでいきたいです!
https://profile.hatena.ne.jp/sato_na/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした