web-dev-qa-db-fra.com

Exemple simple pour Intent et Bundle

Je suis nouveau sur Android avec presque aucune connaissance de Java et XML. Je l’apprends par le biais de fichiers .pdf que j’obtiens sur le net. J’ai J'ai entendu parler de Toast, un peu d'Intents mais je ne comprenais rien à propos des Bundles. J'ai compris qu'ils sont habitués à transmettre des données d'une activité à une autre, mais je ne suis pas en mesure de l'implémenter.

veuillez donner un exemple simple pour mettre en œuvre la même chose.

par exemple, je viens de créer deux activités, Main_Activity et Other_Activity, et je ne leur ai encore rien fait.

S'il vous plaît donner l'exemple le plus simple afin que je puisse apprendre à mettre en œuvre.

Merci d'avance!!

27
Akshay Sethi

Par exemple :

Dans MainActivity:

Intent intent = new Intent(this, OtherActivity.class);
intent.putExtra(OtherActivity.KEY_EXTRA, yourDataObject);
startActivity(intent);

Dans OtherActivity:

public static final String KEY_EXTRA = "com.example.yourapp.KEY_BOOK";

@Override
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);

  String yourDataObject = null;

  if (getIntent().hasExtra(KEY_EXTRA)) {
      yourDataObject = getIntent().getStringExtra(KEY_EXTRA);
  } else {
      throw new IllegalArgumentException("Activity cannot find  extras " + KEY_EXTRA);
  }
  // do stuff
}

Plus d'informations ici: http://developer.Android.com/reference/Android/content/Intent.html

49
John Doe

Essayez ceci: si vous avez besoin de valeurs de passe entre les activités que vous utilisez ...

Ceci est le code pour Main_Activity mettre les valeurs à l'intention

 String name="aaaa";
 Intent intent=new Intent(Main_Activity.this,Other_Activity.class);
 intent.putExtra("name", name);
 startActivity(intent);

Ce code pour Other_Activity et récupère l'intention du formulaire de valeurs

    Bundle b = new Bundle();
    b = getIntent().getExtras();
    String name = b.getString("name");
22
Android_coder

En gros, voici ce que vous devez faire:
dans la première activité:

Intent intent = new Intent();
intent.setAction(this, SecondActivity.class);
intent.putExtra(tag, value);
startActivity(intent);

et dans la deuxième activité:

Intent intent = getIntent();
intent.getBooleanExtra(tag, defaultValue);
intent.getStringExtra(tag, defaultValue);
intent.getIntegerExtra(tag, defaultValue);

l'une des fonctions get vous donnera la valeur, en fonction du type de données que vous transmettez.

6
Nickolaus