web-dev-qa-db-fra.com

Passer un paquet sur startActivity ()?

Quelle est la bonne façon de transmettre un ensemble à l'activité lancée à partir de l'activité actuelle? Propriétés partagées?

151
yanchenko

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.

403
Jeremy Logan

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?

18
DustinB

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 Serializableobjets 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); 
  }
13
IntelliJ Amiya

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);
4
Neha Mehta

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"); 
    }
0
Pouria Hemati

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.

Source: https://www.c-sharpcorner.com/article/how-to-send-the-data-one-activity-to-another-activity-in-Android-application/

0
trustidkid