I would like to pass some variables in the constructor of my ListActivity
I start activity via this code:
startActivity(new Intent (this, viewContacts.class));
I would like to use similar code, but to pass two strings to the constructor. How is possible?
In order to pass the parameters you create new intent and put a parameter map:
Intent myIntent = new Intent(this, NewActivityClassName.class); myIntent.putExtra("firstKeyName","FirstKeyValue"); myIntent.putExtra("secondKeyName","SecondKeyValue"); startActivity(myIntent);
In order to get the parameters values inside the started activity, you must call the
get[type]Extra() on the same intent:
// 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"
If your parameters are ints you would use
getIntExtra() instead etc.
Now you can use your parameters like you normally would.
I think you want something like this:
Intent foo = new Intent(this, viewContacts.class); foo.putExtra("myFirstKey", "myFirstValue"); foo.putExtra("mySecondKey", "mySecondValue"); startActivity(foo);
or you can combine them into a bundle first. Corresponding getExtra() routines exist for the other side. See the intent topic in the dev guide for more information.