Quelle est la bonne façon de transmettre un ensemble à l'activité lancée à partir de l'activité actuelle? Propriétés partagées?
Vous avez quelques options:
1) Utilisez le Bundle du Intent :
Intent mIntent = new Intent(this, Example.class);
Bundle extras = mIntent.getExtras();
extras.putString(key, value);
2) Créer un nouvel ensemble
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 disposent des méthodes "get" et "put" pour tous les types primitifs, Parcelables et Serializables. Je viens d'utiliser Strings à des fins de démonstration.
Vous pouvez utiliser le bundle à partir de l'intention:
Bundle extras = myIntent.getExtras();
extras.put*(info);
Ou un paquet entier:
myIntent.putExtras(myBundle);
Est-ce ce que vous cherchez?
Passer des données d'une activité à une autre dans Android
Une intention contient l'action et éventuellement des données supplémentaires. Les données peuvent être transmises à une autre activité à l'aide de la méthode intent putExtra()
. Les données sont transmises en tant qu'extras et sont key/value pairs
. La clé est toujours une chaîne. En tant que valeur, vous pouvez utiliser les types de données primitifs int, float, chars, etc. Nous pouvons également passerParceable and Serializable
objets d'une activité à l'autre.
Intent intent = new Intent(context, YourActivity.class);
intent.putExtra(KEY, <your value here>);
startActivity(intent);
Récupération de données d'ensemble de l'activité Android
Vous pouvez récupérer les informations à l'aide degetData()
method sur l'objet Intent. L'objet Intent peut être récupéré via la méthodegetIntent()
.
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 les valeurs d’une activité à une autre à l’aide de l’ensemble. Dans votre activité actuelle, créez un ensemble, définissez-le pour la valeur particulière et transmettez-le à 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 cet ensemble 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 une telle intention,
Intent intent = new Intent(this,NewActivity.class);
intent.putExtra(key,value);
startActivity(intent);
Maintenant, dans votre NewActivity, vous pouvez obtenir cette valeur avec une telle intention,
String value = getIntent().getExtras().getString(key);
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 deuxième activité:
Intent in = getIntent();
Bundle content = in.getExtras();
// check null
if (content != null) {
String content = content_search.getString("key_value");
}
Ecrivez 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.