web-dev-qa-db-ja.com

いくつかのパラメーターを渡してIntentを開始する方法は?

ListActivityのコンストラクターにいくつかの変数を渡したい

このコードからアクティビティを開始します。

startActivity(new Intent (this, viewContacts.class));

同様のコードを使用したいのですが、コンストラクタに2つの文字列を渡します。どうして可能ですか?

97
Pentium10

パラメーターを渡すには、新しいインテントを作成し、パラメーターマップを配置します。

Intent myIntent = new Intent(this, NewActivityClassName.class);
myIntent.putExtra("firstKeyName","FirstKeyValue");
myIntent.putExtra("secondKeyName","SecondKeyValue");
startActivity(myIntent);

開始されたアクティビティ内のパラメータ値を取得するには、同じインテントでget[type]Extra()を呼び出す必要があります。

// getIntent() is a method from the started activity
Intent myIntent = getIntent(); // gets the previously created intent
String firstKeyName = myIntent.getStringExtra("firstKeyName"); // will return "FirstKeyValue"
String secondKeyName= myIntent.getStringExtra("secondKeyName"); // will return "SecondKeyValue"

パラメーターがintの場合、代わりにgetIntExtra()などを使用します。これで、通常どおりパラメーターを使用できます。

228
Xitcod13

次のようなものが欲しいと思います:

Intent foo = new Intent(this, viewContacts.class);
foo.putExtra("myFirstKey", "myFirstValue");
foo.putExtra("mySecondKey", "mySecondValue");
startActivity(foo);

または、最初にそれらを結合してバンドルにすることができます。反対側には、対応するgetExtra()ルーチンが存在します。詳細については、開発者ガイドの 意図のトピック を参照してください。

41
RickNotFred