Le passage d'un paquet sur startActivity ()?
-
12-09-2019 - |
Question
Quelle est la bonne façon de passer un paquet à l'activité qui est lancé à partir de l'actuel? propriétés partagées?
La solution
Vous avez quelques options:
1) Utiliser le dans intention :
Intent mIntent = new Intent(this, Example.class);
Bundle extras = mIntent.getExtras();
extras.putString(key, value);
2) Créer un nouveau Bundle
Intent mIntent = new Intent(this, Example.class);
Bundle mBundle = new Bundle();
mBundle.putString(key, value);
mIntent.putExtras(mBundle);
3) Utilisez les touches putExtra () méthode raccourci de l'intention
Intent mIntent = new Intent(this, Example.class);
mIntent.putExtra(key, value);
Puis, dans l'activité lancée, vous les lire via:
String value = getIntent().getExtras().getString(key)
NOTE: Bundles ont "get" et "mettre" les méthodes pour tous les types primitifs, Parcelables et Serializables. Je viens d'utiliser des chaînes démonstartion.
Autres conseils
Vous pouvez utiliser le Bundle de l'intention:
Bundle extras = myIntent.getExtras();
extras.put*(info);
Ou un paquet entier:
myIntent.putExtras(myBundle);
Est-ce que vous cherchez?
Passage de données d'une activité à l'activité dans Android
Une intention contient l'action et éventuellement d'autres données. Les données peuvent être transmises à d'autres activités en utilisant la méthode putExtra()
intention. Les données sont transmises comme figurants et sont key/value pairs
. La clé est toujours une chaîne. En valeur, vous pouvez utiliser les types de données primitives int, float, caractères, etc. On peut aussi passer Parceable 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 bundle de l'activité Android
Vous pouvez récupérer les informations en utilisant getData()
méthodes sur l'objet Intent. Le Intention objet peut être récupéré via la méthode getIntent()
.
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 faisceau. Dans l'activité en cours, créez un paquet et mettre le paquet pour la valeur particulière et de transmettre ce paquet à l'intention.
Intent intent = new Intent(this,NewActivity.class);
Bundle bundle = new Bundle();
bundle.putString(key,value);
intent.putExtras(bundle);
startActivity(intent);
Dans votre NewActivity, vous pouvez obtenir ce paquet et retrive votre valeur.
Bundle bundle = getArguments();
String value = bundle.getString(key);
Vous pouvez également transmettre des données par l'intention. Dans votre activité actuelle, définissez l'intention comme celui-ci,
Intent intent = new Intent(this,NewActivity.class);
intent.putExtra(key,value);
startActivity(intent);
Dans votre NewActivity, vous pouvez obtenir cette valeur d'une intention comme ça,
String value = getIntent().getExtras().getString(key);
Ecrire c'est l'activité que vous êtes:
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 premier activité :
Intent i = new Intent(Context, your second activity.class);
i.putExtra("key_value", "your object");
startActivity(i);
et obtenir l'objet deuxième activité :
Intent in = getIntent();
Bundle content = in.getExtras();
// check null
if (content != null) {
String content = content_search.getString("key_value");
}