Android_studio:TOP

画面遷移

画面遷移

ボタンを押すと次の画面へ行く処理を作成します。
大まかな流れは以下の通り
  1. 遷移前の画面にボタン(次へ)を追加
  2. 遷移後の画面とボタン(前へ)を追加
  3. 遷移後の画面に対応するアクティビティを追加
  4. 遷移前の画面のアクティビティにボタン(次へ)の動作を追加
  5. 遷移後の画面のアクティビティにボタン(前へ)の動作を追加
  6. おまけ:遷移前の画面から遷移後の画面にテキストを渡す

1、遷移前の画面にボタン(次へ)を追加

まずは遷移前の画面にボタンを作成します。
res/activity_main.xmlを開き、[デザイン]モードに切り替えてボタンをD&Gで追加します。


[コード]モードに切り替えて、IDとラベルを変更します。
※ここでは画面遷移に焦点を当てて説明するため、ボタンの大きさや位置などのカスタマイズは無視します。

android:id="@+id/next_button"
android:text="次へ"

2、遷移後の画面とボタン(前へ)作成

左ペインで右クリック → [New(新規)][Layout Resource File(レイアウトリソースファイル)]をクリックします。


とりあえず名前(今回はactivity_second)を付けて[OK]を押下します。


遷移前の画面同様の手順で[戻る]ボタンを追加します。
IDとラベルは以下のようにします。
android:id="@+id/return_button"
android:text="戻る"

3、遷移後の画面用に対応するアクティビティを作成

左ペインで右クリック → [New(新規)][Kotlin Class/File]をクリックします。


とりあえず名前(今回はSecondActivity)を付けて[OK]を押下します。


新しいアクティビティを追加したら、必ずマニフェストに登録します。

<activity android:name=".SecondActivity"></activity>


4、遷移前の画面のアクティビティにボタン(次へ)の動作を追加

MainActivityを開き、クラスのonCreate内にを以下のコードを追記します。
val button: Button = findViewById(R.id.next_button)
button.setOnClickListener{
//ここでintentインスタンスを生成(第2引数に遷移先のアクティビティ名を指定) val intent = Intent(this, SecondActivity::class.java)
//生成したインスタンスを起動 startActivity(intent)
}

5、遷移後の画面のアクティビティにボタン(戻る)の動作を追加

SecondaryActivityを開き、クラスを以下のコードで置き換えます。
class SecondActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_second)

val button: Button = findViewById(R.id.return_button)
button.setOnClickListener {
//画面を終了して前の画面に戻る finish()
}
}
}

おまけ:遷移前の画面から遷移後の画面にテキストを渡す

遷移前の画面の遷移後の画面呼び出し(startActivity(intent))の前に以下を追加します。
"KEY"を使用して、次の画面に変数を渡します。任意の文字列を設定できますが、大文字が推奨されています。
val text="やっほー" intent.putExtra("KEY",text)
遷移後のレイアウト画面に表示用のラベル(IDを「label1」に設定)を追加します。
(画面略)

遷移後のアクティビティに以下のコードを追加します。
(画面略)
val textID = findViewById(R.id.label1) val text = intent.getStringExtra("KEY") textID.setText(text)