Android, Can I use putExtra to pass multiple values Android, Can I use putExtra to pass multiple values android android

Android, Can I use putExtra to pass multiple values


You could pass a 'bundle' of extras rather than individual extras if you like, for example:-

Intent intent = new Intent(this, MyActivity.class);Bundle extras = new Bundle();extras.putString("EXTRA_USERNAME","my_username");extras.putString("EXTRA_PASSWORD","my_password");intent.putExtras(extras);startActivity(intent);

Then in your Activity that your triggering, you can reference these like so:-

Intent intent = getIntent();Bundle extras = intent.getExtras();String username_string = extras.getString("EXTRA_USERNAME");String password_string = extras.getString("EXTRA_PASSWORD");

Or (if you prefer):-

Bundle extras = getIntent().getExtras();String username_string = extras.getString("EXTRA_USERNAME");String password_string = extras.getString("EXTRA_PASSWORD");

Hope this helps! :-)


You can pass multiple values by using multiple keys. Instead of

i.putExtra(ID_EXTRA, "1", "111");

do

i.putExtra(ID_EXTRA1, "1");i.putExtra(ID_EXTRA2, "111");

Of course you have to define 2 constants for the keys and have to read both seperately in the new activity.

Or you can pass a string array via

i.putExtra(ID_EXTRA, new String[] { "1", "111"});


Putting extra values in class

public class MainActivity extends Activity {        public final static String USERNAME = "com.example.myfirstapp.MESSAGE";        public final static String EMAIL = "com.example.myfirstapp.EMAIL";public void registerUser(View view) {        Intent intent = new Intent(this, DisplayMessageActivity.class);        EditText userNameTxt = (EditText) findViewById(R.id.editText1);        EditText emailTxt = (EditText) findViewById(R.id.editText2);        String userName = userNameTxt.getText().toString();        String email = emailTxt.getText().toString();        intent.putExtra(USERNAME, userName);        intent.putExtra(EMAIL,email);        startActivity(intent);    }

Reading extra values from another class

public class DisplayMessageActivity extends Activity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        Intent intent = getIntent();        String user = intent.getStringExtra(MainActivity.USERNAME);        String email = intent.getStringExtra(MainActivity.EMAIL);