Comment utiliser putExtra () et getExtra () pour les données de chaîne

Quelqu’un peut-il s’il vous plaît me dire exactement comment utiliser getExtra() et putExtra() pour Intent. En fait, j’ai une variable de chaîne, disons str, qui stocke des données de chaîne. Maintenant, je veux envoyer ces données d’une activité à l’autre activité.

  Intent i = new Intent(FirstScreen.this, SecondScreen.class); Ssortingng keyIdentifer = null; i.putExtra(strName, keyIdentifer ); 

et puis dans le SecondScreen.java

  public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.table); TextView userName = (TextView)findViewById(R.id.userName); Bundle bundle = getIntent().getExtras(); if(bundle.getSsortingng("strName")!= null) { //TODO here get the ssortingng stored in the ssortingng variable and do // setText() on userName } } 

Je sais que c’est une question très simple mais malheureusement je suis coincé ici. S’il vous plaît aider.

Merci,

édité: Ici, la chaîne que je tente de passer d’un écran à l’autre est dynamic. C’est-à-dire que j’ai un editText où je reçois des chaînes quel que soit le type d’utilisateur. Ensuite, à l’aide de myEditText.getText().toSsortingng() . J’obtiens la valeur saisie sous forme de chaîne, puis je dois transmettre ces données.

Utilisez ceci pour “mettre” le fichier …

 Intent i = new Intent(FirstScreen.this, SecondScreen.class); Ssortingng strName = null; i.putExtra("STRING_I_NEED", strName); 

Ensuite, pour récupérer la valeur, essayez quelque chose comme:

 Ssortingng newSsortingng; if (savedInstanceState == null) { Bundle extras = getIntent().getExtras(); if(extras == null) { newSsortingng= null; } else { newSsortingng= extras.getSsortingng("STRING_I_NEED"); } } else { newSsortingng= (Ssortingng) savedInstanceState.getSerializable("STRING_I_NEED"); } 

premier screen.java

 text=(TextView)findViewById(R.id.tv1); edit=(EditText)findViewById(R.id.edit); button=(Button)findViewById(R.id.bt1); button.setOnClickListener(new OnClickListener() { public void onClick(View arg0) { Ssortingng s=edit.getText().toSsortingng(); Intent ii=new Intent(MainActivity.this, newclass.class); ii.putExtra("name", s); startActivity(ii); } }); 

Deuxième écran.java

 public class newclass extends Activity { private TextView Textv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.intent); Textv = (TextView)findViewById(R.id.tv2); Intent iin= getIntent(); Bundle b = iin.getExtras(); if(b!=null) { Ssortingng j =(Ssortingng) b.get("name"); Textv.setText(j); } } } 

Meilleure méthode …

EnvoiActivité

 Intent intent = new Intent(SendingActivity.this, RecievingActivity.class); intent.putExtra("keyName", value); // pass your values and resortingeve them in the other Activity using keyName startActivity(intent); 

RéactivitéActivité

  Bundle extras = intent.getExtras(); if(extras != null) Ssortingng data = extras.getSsortingng("keyName"); // resortingeve the data using keyName 

/// moyen le plus court pour recevoir des données ..

 Ssortingng data = getIntent().getExtras().getSsortingng("keyName","defaultKey"); 

// Cela nécessite api 12. // le deuxième paramètre est facultatif. Si keyName est null, utilisez la defaultkey comme donnée.

C’est ce que j’ai utilisé, j’espère que ça aide quelqu’un … simple et affectif.

envoyer des données

  intent = new Intent(getActivity(), CheckinActivity.class); intent.putExtra("mealID", meal.Meald); startActivity(intent); 

obtenir des données

  int mealId; Intent intent = getIntent(); Bundle bundle = intent.getExtras(); if(bundle != null){ mealId = bundle.getInt("mealID"); } 

à votre santé!

Il est très facile d’implémenter l’ intent dans Android .. Il vous faut passer d’une activité à une autre activité, nous avons deux méthodes putExtra(); et getExtra(); Maintenant je vous montre l’exemple ..

  Intent intent = new Intent(activity_registration.this, activity_Login.class); intent.putExtra("AnyKeyName", Email.getText().toSsortingng()); // pass your values and resortingeve them in the other Activity using AnyKeyName startActivity(intent); 

Maintenant, nous devons obtenir la valeur du paramètre AnyKeyName , le code mentionné ci-dessous vous aidera à le faire

  Ssortingng data = getIntent().getExtras().getSsortingng("AnyKeyName"); textview.setText(data); 

Nous pouvons facilement définir la valeur de réception de Intent , où que nous en ayons besoin.

Un petit addendum: vous n’avez pas à créer votre propre nom pour la clé, android les fournit, f.ex. Intent.EXTRA_TEXT . Modifier la réponse acceptée:

 Intent i = new Intent(FirstScreen.this, SecondScreen.class); Ssortingng strName = null; i.putExtra(Intent.EXTRA_TEXT, strName); 

Ensuite, pour récupérer la valeur, essayez quelque chose comme:

 Ssortingng newSsortingng; Bundle extras = getIntent().getExtras(); if(extras == null) { newSsortingng= null; } else { newSsortingng= extras.getSsortingng(Intent.EXTRA_TEXT); } 
 Intent intent = new Intent(view.getContext(), ApplicationActivity.class); intent.putExtra("int", intValue); intent.putExtra("Serializable", object); intent.putExtra("Ssortingng", ssortingngValue); intent.putExtra("parcelable", parObject); startActivity(intent); 

ApplicationActivity

 Intent intent = getIntent(); Bundle bundle = intent.getExtras(); if(bundle != null){ int mealId = bundle.getInt("int"); Object object = bundle.getSerializable("Serializable"); Ssortingng ssortingng = bundle.getSsortingng("Ssortingng"); T ssortingng = bundle.getSsortingng("parcelable"); } 

Plus simple

côté expéditeur

 Intent i = new Intent(SourceActiviti.this,TargetActivity.class); i.putExtra("id","ssortingng data"); startActivity(i) 

côté récepteur

 Intent i = new Intent(SourceActiviti.this,TargetActivity.class); Ssortingng strData = i.getSsortingngExtra("id"); 

mettre la fonction

 etname=(EditText)findViewById(R.id.Name); tvname=(TextView)findViewById(R.id.tvName); b1= (ImageButton) findViewById(R.id.Submit); b1.setOnClickListener(new OnClickListener() { public void onClick(View arg0) { Ssortingng s=etname.getText().toSsortingng(); Intent ii=new Intent(getApplicationContext(), MainActivity2.class); ii.putExtra("name", s); Toast.makeText(getApplicationContext(),"Page 222", Toast.LENGTH_LONG).show(); startActivity(ii); } }); getfunction public class MainActivity2 extends Activity { TextView tvname; EditText etname; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main_activity2); tvname = (TextView)findViewById(R.id.tvName); etname=(EditText)findViewById(R.id.Name); Intent iin= getIntent(); Bundle b = iin.getExtras(); if(b!=null) { Ssortingng j2 =(Ssortingng) b.get("name"); etname.setText(j2); Toast.makeText(getApplicationContext(),"ok",Toast.LENGTH_LONG).show(); } } 

Données Push

 import android.content.Intent; ... Intent intent = new Intent( this, MyActivity.class ); intent.putExtra( "paramName", "paramValue" ); startActivity( intent ); 

Le code ci-dessus peut être à l’intérieur de l’ activity principale. ” MyActivity.class ” est la deuxième Activity nous souhaitons lancer; il doit être explicitement inclus dans votre fichier AndroidManifest.xml .

  

Tirez Données

 import android.os.Bundle; ... Bundle extras = getIntent().getExtras(); if (extras != null) { Ssortingng myParam = extras.getSsortingng("paramName"); } else { //..oops! } 

Dans cet exemple, le code ci-dessus serait dans votre fichier MyActivity.java .

Gotchas

Cette méthode ne peut que passer des ssortingngs . Alors, disons que vous devez passer une ArrayList à votre ListActivity ; une solution de contournement possible consiste à passer une chaîne séparée par des virgules, puis à la diviser de l’autre côté.

Solutions alternatives

Utiliser les SharedPreferences

Simple, en première activité-

  EditText name= (EditText) findViewById(R.id.editTextName); Button button= (Button) findViewById(R.id.buttonGo); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent i = new Intent(MainActivity.this,Main2Activity.class); i.putExtra("name",name.getText().toSsortingng()); startActivity(i); } }); 

En deuxième activité-

  @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); TextView t = (TextView) findViewById(R.id.textView); Bundle bundle=getIntent().getExtras(); Ssortingng s=bundle.getSsortingng("name"); t.setText(s); } 

Vous pouvez append des conditions if / else si vous le souhaitez.

mettre la ficelle en premier

 Intent secondIntent = new Intent(this, typeof(SecondActivity)); secondIntent.PutExtra("message", "Greetings from MainActivity"); 

le récupérer après cela

 var message = this.Intent.GetSsortingngExtra("message"); 

c’est tout 😉