[Android & Kotlin ] アプリの画面遷移とActivity間のデータ転送

[Android & Kotlin ] アプリの画面遷移とActivity間のデータ転送

KotlinでのActivityの遷移とそれに伴ってデータを別Activityに送る、またそのActivityから受け取る方法について調べてみました。
 
activity datatrans 01a - [Android & Kotlin ]  アプリの画面遷移とActivity間のデータ転送

Android Studio 3.1.4
Android 8.1



Activity 画面を遷移しデータを受け渡すアプリ

 
画面遷移だけのKotlinのケースはActivityの画面遷移にて説明しましたが

  1. 遷移したタイミングでデータを渡したい
  2. 遷移先から戻るタイミングでデータを受け取りたい

という場合にはIntentを使ってActivity間でデータを渡すことができます。

  • startActivityForResult(Intent, int)
  • onActivityResult(int, int, Intent)

これらを使います。
 

 

putExtra & onActivityResult

 
MainActivity から SubActivity への遷移は

 
別の Activity を開始する ではpublicなKeyを設定しています。これはputExtraによると
String: The name of the extra data, with package prefix.
とありますので、package名をprefixとして例えば、EXTRA_MESSAGEというのを設定します。
 

 
このEXTRA_MESSAGEを使って putExtra(name, value) に渡すデータの key(name) と value を入れます
入れるデータの型指定はありません

 
data を渡すだけならこれでいいのですが、SubActivity からの返しを受け取りたいので

startActivityForResult と返ってくるリクエストコードを設定します
また、返ってきたときに受け取りは、onActivityResult で受け取ります

 

 

SubActivity データを受け取る

 
渡されたデータを受け取るには

 
受け取るときは、name とデータの型を指定します。
データが int の場合は、初期値を入れますがString型ではいりません。
その他、
getBooleanExtra(String name, boolean defaultValue)
…etc.
Intent reference

 

[back] ボタンタップで元に戻り、データを返す

 
SubActivity から戻るときにデータを返すには同様に
putExtra(name, value)
を使います
 

 

MainActivity :元の画面でデータを受け取る

 
SubActivity からのデータを受け取るにはonActivityResult 内で受け取ります
この受け取りでは、MainActivity は onCreate() から始まらずに onActivityResult に到達します
 

 
色々追加して、以下のような機能でまとめてみます。
MainActivityで文字入力
SubActivityで受け取って表示
SubActivityから、受け取った文字列に追加して戻す
MainActivityではSubActivityから戻された文字列を表示
 
MainActivity.kt

 
遷移先のActivity
SubActivity.ktを作成しコードを記述します。
 
SubActivity.kt

 
MainActivityのレイアウト
activity_main.xml

 
SubActivityのレイアウト
activity_sub.xml

 
リソースです
strings.xml

Manifest に SubActivity の記述も忘れずに、package名は適宜合わせてください。
AndroidManifest.xml

 

 
 
Ref: Activity

誤字脱字、意味不明で分からにゃイ、
などのご意見はこちらから mailフォーム

ブックマークしておくと便利です このエントリーをはてなブックマークに追加


 


ページのトップへ戻る




シェアする

  • このエントリーをはてなブックマークに追加

フォローする