114

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?

1
  • 2
    I think it would be a better question if it asked how to pass the parameters to a new Activity as well how to get the parameters once you pass them. I dont understand why we need to have 2 separate questions if you need to use both to really have any functionality anyways. (Thats why i included how to get parameters in my answer look below) Commented Oct 18, 2012 at 0:58

3 Answers 3

263

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.

Sign up to request clarification or add additional context in comments.

2 Comments

How can we ensure getIntent() returns the intent we created in your first code snipper?
when you start an Activity you pass in an intent. This is the intent that will be returned. notice: myIntent.putExtra("secondKeyName","SecondKeyValue"); startActivity(myIntent);
43

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.

1 Comment

Here's an example of how to get these values in the launched activity: stackoverflow.com/a/4233898/246743
3

putExtra() : This method sends the data to another activity and in parameter, we have to pass key-value pair.

Syntax: intent.putExtra("key", value);

Eg: intent.putExtra("full_name", "Vishnu Sivan");

Intent intent=getIntent() : It gets the Intent from the previous activity.

fullname = intent.getStringExtra(“full_name”) : This line gets the string form previous activity and in parameter, we have to pass the key which we have mentioned in previous activity.

Sample Code:

Intent intent = new Intent(getApplicationContext(), MainActivity.class); intent.putExtra("firstName", "Vishnu"); intent.putExtra("lastName", "Sivan"); startActivity(intent); 

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.