1. ホーム
  2. android

[解決済み] startActivity()でBundleを渡す?

2022-04-20 23:03:47

質問

現在のアクティビティから起動されるアクティビティにバンドルを渡すには、どのような方法が正しいですか?共有プロパティ?

どのように解決するのですか?

いくつかの選択肢があります。

1) バンドル から インテント :

Intent mIntent = new Intent(this, Example.class);
Bundle extras = mIntent.getExtras();
extras.putString(key, value);  

2) 新規にBundleを作成する

Intent mIntent = new Intent(this, Example.class);
Bundle mBundle = new Bundle();
mBundle.putString(key, value);
mIntent.putExtras(mBundle);

3) putExtra() Intentのショートカットメソッド

Intent mIntent = new Intent(this, Example.class);
mIntent.putExtra(key, value);



そして、起動したActivityで、それらを経由して読み込むことになります。

String value = getIntent().getExtras().getString(key)

NOTE バンドルには、すべてのプリミティブ型、Parcelable、Serializableに対して、"get" と "put" メソッドが用意されています。私はデモのためにStringを使っただけです。