Quelqu'un peut-il s'il vous plaît me dire exactement comment utiliser getExtra()
et putExtra()
à des fins? 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é à une autre.
Intent i = new Intent(FirstScreen.this, SecondScreen.class);
String keyIdentifer = null;
i.putExtra(strName, keyIdentifer );
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.getString("strName")!= null)
{
//TODO here get the string stored in the string variable and do
// setText() on userName
}
}
Je sais que c'est une question très fondamentale mais malheureusement je suis coincé ici. Veuillez aider.
Merci,
Edit: Ici la chaîne que j'essaie de passer d'un écran à l'autre est dynamique. Autrement dit, j'ai un editText où je reçois une chaîne quels que soient les types d'utilisateurs. Puis avec l'aide de myEditText.getText().toString()
. J'obtiens la valeur entrée sous forme de chaîne, puis je dois transmettre ces données.
android
android-intent
Shaista Naaz
la source
la source
Réponses:
Utilisez-le pour "mettre" le fichier ...
Ensuite, pour récupérer la valeur, essayez quelque chose comme:
la source
this.getActivity().getIntent().getExtras()
.premier Screen.java
Second Screen.java
la source
Meilleure méthode ...
SendingActivity
RecievingActivity
/// moyen le plus court de recevoir des données ..
// Cela nécessite une API 12. // le deuxième paramètre est facultatif. Si keyName est null, utilisez les
defaultkey
données as.la source
C'est ce que j'utilise, j'espère que cela aide quelqu'un .. simple et affectif.
envoyer des données
obtenir des données
à votre santé!
la source
Il est très facile à mettre
intent
en œuvre dans Android .. Il vous faut passer d'une activité à une autre, nous avons deux méthodesputExtra();
etgetExtra();
maintenant je vous montre l'exemple ..Maintenant, nous devons obtenir la valeur du
AnyKeyName
paramètre, le code mentionné ci-dessous vous aidera à le faireNous pouvons facilement définir la valeur de réception de
Intent
, partout où nous avons besoin.la source
Un petit addenda: vous n'avez pas besoin de créer votre propre nom pour la clé, Android les fournit, f.ex.
Intent.EXTRA_TEXT
. Modification de la réponse acceptée:la source
ApplicationActivité
la source
Mise à jour dans la classe Intent .
hasExtra()
pour vérifier si l'intention contient des données sur la clé.getStringExtra()
directement.Transmettre les données
Obtenir des données
Mettez toujours les clés dans les constantes comme meilleure pratique.
la source
PutExtraConstants
une interface?PutExtraConstants
classe ne contient que des constantes (public
,static
,final
). Il est donc préférable d'utiliser l'interface pour les constantes.Plus simple
côté expéditeur
côté récepteur
la source
Mettre une chaîne dans un objet d'intention
NextAcitvity dans la méthode onCreate get String
c'est une méthode simple et courte
la source
envoyer
avoir
la source
mettre la fonction
la source
Données push
Le code ci-dessus peut être à l'intérieur du principal
activity
. "MyActivity.class
" est le deuxième queActivity
nous voulons lancer; il doit être explicitement inclus dans votreAndroidManifest.xml
fichier.Extraire des données
Dans cet exemple, le code ci-dessus se trouverait dans votre
MyActivity.java
fichier.Gotchas
Cette méthode ne peut que passer
strings
. Disons donc que vous devez passer unArrayList
à votreListActivity
; 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
Utilisation
SharedPreferences
la source
Simple, dans la première activité-
Dans la deuxième activité-
la source
À FirstScreen.java
Sur SecondScreen.java
la source
mettre la chaîne en premier
récupérer après cela
c'est tout ;)
la source
Vous pouvez simplement utiliser une variable statique pour stocker la chaîne de votre edittext, puis utiliser cette variable dans l'autre classe. J'espère que cela résoudra votre problème
la source