2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

kotlinとjavaで画面遷移したい!

Posted at

はじめに…

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

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

になってます

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

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

それぞれの言語で画面遷移をするには…

画面遷移の基礎

  • javaの場合
Intent intent = new intent(遷移前のアクティビティ.this, 遷移後のアクティビティ.class);
startActivity(intent);

例)

MainActivity.java
Intent intent = new Intent(MainActivity.this, WhoActivity.class);  // 25行目
startActivity(intent);
  • kotlinの場合
val intent = Intent(application, 遷移後のアクティビティ::class.java)
startActivity(intent)

例)

MainActivity.kt
val intent = Intent(application, WhoActivity::class.java)  // 18行目
startActivity(intent)

intentの設定方法が大きく違う

画面遷移の時に文字列を渡す方法

  • javaの場合

(遷移前のアクティビティ)

Intent intent = new Intent(今のアクティビティ.this, 次のアクティビティ.class);
intent.putExtra("値に紐づくキー", 渡したい値);
startActivity(intent);

例)

HowManyActivity.java
String groupNum = groupNumE.getText().toString();                           // 43行目 
Intent intent = new Intent(WhoActivity.this, HowManyActivity.class);        // 46行目
intent.putExtra("GROUP_NUM", groupNum);    // groupNumをCheckActivityに送る  // 48行目
startActivity(intent);

(遷移後のアクティビティ)

Intent intent = getIntent();
final String 変数名 = intent.getStringExtra("値に紐づくキー");

例)

CheckActivity.java
Intent intent = getIntent();                                 // 25行目
final String groupNum = intent.getStringExtra("GROUP_NUM");  // 27行目
  • kotlinの場合

(遷移前のアクティビティ)

val intent = Intent(application, 遷移後のアクティビティ::class.java)
intent.putExtra("値に紐づくキー", 渡したい値)
startActivity(intent)

例)

HowManyActivity.kt
val groupNum = group_num_et.text.toString()                               // 33行目
val intent = Intent(application, CheckActivity::class.java)               // 36行目
intent.putExtra("GROUP_NUM", groupNum)   // groupNumをCheckActivityに送る  // 38行目
startActivity(intent)

(遷移後のアクティビティ)

val 変数名 = intent.getStringExtra("値に紐づくキー")

例)

CheckActivity.kt
val groupNum = intent.getStringExtra("GROUP_NUM")

遷移後のアクティビティに書く、値を受け取るためのコードが違う

ボタンを押して画面遷移をする方法

  • javaの場合
Button 変数名 = findViewById(R.id.ボタンのid);
変数.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        // 画面遷移
    }
});

例)

MainActivity.java
Button startButton = findViewById(R.id.start_btn);  // 19行目
startButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Intent intent = new Intent(MainActivity.this, WhoActivity.class);
        startActivity(intent);
    }
});
  • kotlinの場合
ボタンのid.setOnClickListener {
    // 画面遷移
}

例)

MainActivity.kt
start_btn.setOnClickListener {  // 16行目
    val intent = Intent(application, WhoActivity::class.java)
    startActivity(intent)
}

ボタンを扱うときに必要なコードが全体的にjavaよりもkotlinの方が少ない

最後に…

今回はjavaとkotlinでボタンを押して画面遷移をしました。
全体的にjavaよりもkotlinの方が簡潔に書ける印象でした。

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

2
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
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?