Intentによる画面遷移の方法を説明しています。
実装例
レイアウト
activity_main.xml
メインアクティビティのレイアウトです。
メインアクテビティであることが分かるようにテキストの表示と、サブアクティビティへ遷移するためのボタンを配置しています。
activity_sub.xml
サブアクティビティのレイアウトです。
メインアクテビティと異なるテキストの表示と、メインアクテビティから引き渡される値を表示するためのテキストを配置しています。
実装方法
MainActivity.kt
”intentに遷移先のActivityをセット→渡す値があればExtraへセット→intentによる画面遷移を実行”の流れです。
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val button: Button = findViewById(R.id.button) button.setOnClickListener { //サブアクティビティへ遷移するためのintentを設定 val intent: Intent = Intent(this, SubActivity::class.java) //サブアクティビティへ渡す値を設定 intent.putExtra("extra", "MainActivityから遷移") //サブアクティビティへ遷移する startActivity(intent) } }
SubActivity.kt
intentによる画面遷移が行われると、メインアクテビティ同様にonCreateの処理が実行されます。
メインアクテビティから値を渡している場合は、intentからget〇〇Extraで取り出します。
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_sub) //intentを取得 val intent: Intent = intent; //渡された値を取得 val extra: String? = intent.getStringExtra("extra") extra.let { //Extraの値を画面に表示する val textViewExtra: TextView = findViewById(R.id.textViewExtra) textViewExtra.text = it.toString() } }
実行結果
アプリ起動時
サブアクティビティへ遷移時
”SubActivityへ”ボタンを押すと以下のようにアクテビティが切り替わります。また、渡された値のテキスト表示も行えていることが分かります。
まとめ
Intentによる画面遷移の方法を説明しました。
Intentを利用すると、別のアクテビティを開始して画面を切り替えることが出来ます。また、アクテビティ間で値を引き渡すことも可能です。
画面の一部を切り替えるといった簡単な表示切替を行う場合は、Fragmentを利用しましょう。