Réponses:
Vous avez quelques options:
1) Utilisez le bundle de l' intention :
Intent mIntent = new Intent(this, Example.class);
Bundle extras = mIntent.getExtras();
extras.putString(key, value);
2) Créez un nouveau pack
Intent mIntent = new Intent(this, Example.class);
Bundle mBundle = new Bundle();
mBundle.putString(key, value);
mIntent.putExtras(mBundle);
3) Utilisez la méthode de raccourci putExtra () de l'intention
Intent mIntent = new Intent(this, Example.class);
mIntent.putExtra(key, value);
Ensuite, dans l'activité lancée, vous les liriez via:
String value = getIntent().getExtras().getString(key)
REMARQUE: Les bundles ont des méthodes "get" et "put" pour tous les types primitifs, Parcelables et Serializables. Je viens d'utiliser des chaînes à des fins de démonstration.
Vous pouvez utiliser le Bundle à partir de l'intention:
Bundle extras = myIntent.getExtras();
extras.put*(info);
Ou un bundle complet:
myIntent.putExtras(myBundle);
Est-ce ce que vous recherchez?
Passer des données d'une activité à une activité dans Android
Un intent contient l'action et éventuellement des données supplémentaires. Les données peuvent être transmises à une autre activité à l'aide de la putExtra()
méthode d' intention . Les données sont transmises comme extras et le sont key/value pairs
. La clé est toujours une chaîne. Comme valeur, vous pouvez utiliser les types de données primitifs int, float, chars, etc. Nous pouvons également passer des Parceable and Serializable
objets d'une activité à une autre.
Intent intent = new Intent(context, YourActivity.class);
intent.putExtra(KEY, <your value here>);
startActivity(intent);
Récupération des données de bundle à partir de l'activité Android
Vous pouvez récupérer les informations à l'aide de getData()
méthodes sur l'objet Intent. L' objet Intent peut être récupéré via la getIntent()
méthode.
Intent intent = getIntent();
if (null != intent) { //Null Checking
String StrData= intent.getStringExtra(KEY);
int NoOfData = intent.getIntExtra(KEY, defaultValue);
boolean booleanData = intent.getBooleanExtra(KEY, defaultValue);
char charData = intent.getCharExtra(KEY, defaultValue);
}
Vous pouvez transmettre des valeurs d'une activité à une autre activité à l'aide du Bundle. Dans votre activité actuelle, créez un bundle et définissez le bundle pour la valeur particulière et transmettez ce bundle à l'intention.
Intent intent = new Intent(this,NewActivity.class);
Bundle bundle = new Bundle();
bundle.putString(key,value);
intent.putExtras(bundle);
startActivity(intent);
Maintenant dans votre NewActivity, vous pouvez obtenir ce bundle et récupérer votre valeur.
Bundle bundle = getArguments();
String value = bundle.getString(key);
Vous pouvez également transmettre des données via l'intention. Dans votre activité actuelle, définissez l'intention comme ceci,
Intent intent = new Intent(this,NewActivity.class);
intent.putExtra(key,value);
startActivity(intent);
Maintenant, dans votre NewActivity, vous pouvez obtenir cette valeur d'une intention comme celle-ci,
String value = getIntent().getExtras().getString(key);
Écrivez ceci est l'activité dans laquelle vous vous trouvez:
Intent intent = new Intent(CurrentActivity.this,NextActivity.class);
intent.putExtras("string_name","string_to_pass");
startActivity(intent);
Dans le NextActivity.java
Intent getIntent = getIntent();
//call a TextView object to set the string to
TextView text = (TextView)findViewById(R.id.textview_id);
text.setText(getIntent.getStringExtra("string_name"));
Cela fonctionne pour moi, vous pouvez l'essayer.
vous pouvez utiliser ce code dans votre première activité :
Intent i = new Intent(Context, your second activity.class);
i.putExtra("key_value", "your object");
startActivity(i);
et obtenir un objet dans la deuxième activité :
Intent in = getIntent();
Bundle content = in.getExtras();
// check null
if (content != null) {
String content = content_search.getString("key_value");
}