ListActivityのコンストラクターにいくつかの変数を渡したい
このコードからアクティビティを開始します。
startActivity(new Intent (this, viewContacts.class));
同様のコードを使用したいのですが、コンストラクタに2つの文字列を渡します。どうして可能ですか?
パラメーターを渡すには、新しいインテントを作成し、パラメーターマップを配置します。
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()
などを使用します。これで、通常どおりパラメーターを使用できます。
次のようなものが欲しいと思います:
Intent foo = new Intent(this, viewContacts.class);
foo.putExtra("myFirstKey", "myFirstValue");
foo.putExtra("mySecondKey", "mySecondValue");
startActivity(foo);
または、最初にそれらを結合してバンドルにすることができます。反対側には、対応するgetExtra()ルーチンが存在します。詳細については、開発者ガイドの 意図のトピック を参照してください。