アクティビティ間でのデータ受け渡し
引き続きAndroidのアプリ開発。
今回はアクティビティ間でのデータ受け渡し。
ググったら、android.app.Applicationはアプリ終了まで維持されるので、このクラスを拡張してデータの受け渡しに使うという例が多いようなんだが、
これもサブクラスを作らなければならない方法と思うんで、共感できないやり方。
他の方法として、別のアクティビティを開始する際は
Intentには
わざわざ受け渡し用の機能を用意してくれてるんだから、これ使ってデータの受け渡しをするのが基本でしょ。
valueには様々な型を記録できるように用意されており、
"key"とvalueの組み合わせのMapとして扱えるぽい。
SubActivity側でのデータ受け取りは、
putExtraで記録したデータは型によって取得用のメソッドが異なるが、
getIntExtraの1番目の引数はMapのキーだが、
2番目の引数は取得できない場合?のデフォルト値。
受け渡し方法自体は難しくないんだが、別のアクティビティの起動はイベント経由になると思うが、
元のアクティビティの処理をonCreateに書くと思うから、イベントリスナと別メソッドになるので、
別のアクティビティに渡す以前に、元のアクティビティ内でローカル変数のスコープが面倒な感じ。
しかし、ググッて出てくる解説サイトが糞な書き方してる人ばっかで困る。
ソースファイル数やコード量が多くなる書き方してる説明が多すぎ。
今回はアクティビティ間でのデータ受け渡し。
ググったら、android.app.Applicationはアプリ終了まで維持されるので、このクラスを拡張してデータの受け渡しに使うという例が多いようなんだが、
これもサブクラスを作らなければならない方法と思うんで、共感できないやり方。
他の方法として、別のアクティビティを開始する際は
startActivity(Intent);
と、Intentを起動させる感じになるが、Intentには
intent.putExtra("key",value);
の様な感じで追加データを記録できる。わざわざ受け渡し用の機能を用意してくれてるんだから、これ使ってデータの受け渡しをするのが基本でしょ。
valueには様々な型を記録できるように用意されており、
"key"とvalueの組み合わせのMapとして扱えるぽい。
Intent intent=new Intent(MainActivity.this,SubActivity.class);
intent.putExtra("key",value);
startActivity(intent);
こんな感じで別のアクティビティを起動する。intent.putExtra("key",value);
startActivity(intent);
SubActivity側でのデータ受け取りは、
Intent intent=getIntent();
でIntentが取得できる。putExtraで記録したデータは型によって取得用のメソッドが異なるが、
intent.getIntExtra("key",0);
Int型ならgetIntExtra()で取得できる。getIntExtraの1番目の引数はMapのキーだが、
2番目の引数は取得できない場合?のデフォルト値。
受け渡し方法自体は難しくないんだが、別のアクティビティの起動はイベント経由になると思うが、
元のアクティビティの処理をonCreateに書くと思うから、イベントリスナと別メソッドになるので、
別のアクティビティに渡す以前に、元のアクティビティ内でローカル変数のスコープが面倒な感じ。
しかし、ググッて出てくる解説サイトが糞な書き方してる人ばっかで困る。
ソースファイル数やコード量が多くなる書き方してる説明が多すぎ。