Comment transmettre les valeurs d'une activité à l'activité précédente
Comment puis-je passer d'une valeur à partir d'un écran à son écran précédent?
Tenir compte de cette affaire: j'ai deux activités. Le premier écran a un TextView
et un bouton, et la deuxième activité a un EditText
et un bouton.
Si je clique sur le premier bouton, puis il doit passer à la deuxième activité, et ici, l'utilisateur doit saisir quelque chose dans la zone de texte. Si il appuie sur le bouton à partir de la deuxième écran, puis les valeurs de la zone de texte doit passer à la première activité et qui doit être affiché dans la première activité TextView
.
- Double Possible de l'Envoi de données vers l'Activité Principale de Android
- Double Possible de Comment puis-je transférer des données entre les Activités de l'application Android?
Vous devez vous connecter pour publier un commentaire.
Pour capturer les actions effectuées sur une Activité dans un autre nécessite trois étapes.
Lancement de l'Activité secondaire (votre "Modifier le Texte" de l'Activité) comme une sous-activité en utilisant
startActivityForResult
de votre Activité principale.Au sein de la sous-activité, plutôt que de simplement fermer l'Activité lorsqu'un utilisateur clique sur le bouton, vous devez créer une nouvelle Intention et inclure le texte saisi de la valeur dans son bundle extras. À transmettre au parent d'appel
setResult
avant d'appelerfinish
pour fermer l'Activité secondaire.La dernière étape consiste en l'appelant Activité: Remplacer
onActivityResult
pour écouter les rappels à partir de l'entrée de texte Activité. Obtenir le plus depuis le retour de l'Intention d'obtenir la valeur de texte, vous devriez être en affichant.new Intent(null);
était "trop ambigu", et j'ai dû changer denew Intent();
.Il existe quelques façons dont vous pouvez accéder à des variables ou de l'objet dans d'autres classes ou de l'Activité.
A. Base De Données
B. partagé préférences.
C. sérialisation d'un Objet.
D. Une classe qui peut contenir des données communes peut être nommé en tant que Utilitaires cela dépend de vous.
E. la transmission des données par le biais d'Intentions et de l'Interface Parcelable.
Il dépendent des besoins de votre projet.
A. Base De Données
SQLite est une Base de données Open Source qui est intégré dans Android. SQLite prend en charge la norme de base de données relationnelle fonctionnalités comme la syntaxe SQL, des opérations et déclarations préparées à l'avance.
Tutoriels -- http://www.vogella.com/articles/AndroidSQLite/article.html
B. Partagé Préférences
Supposons que vous souhaitez stocker le nom d'utilisateur. Donc, il y aura maintenant deux chose un Clé nom d'utilisateur, Valeur Valeur.
Comment stocker
À l'aide de putString(),putBoolean(),putInt(),putFloat(),putLong (), vous pouvez enregistrer votre choix dtatype.
Comment extraire les
http://developer.android.com/reference/android/content/SharedPreferences.html
C. Sérialisation D'Un Objet
Objet serlization est utilisé si l'on veux enregistrer un état de l'objet de l'envoyer sur le réseau, ou vous pouvez l'utiliser pour votre usage aussi.
Utiliser java beans et de les stocker dans un de ses champs et de l'utilisation des getters et setter pour que
JavaBeans sont des classes Java qui ont des propriétés. Pensez
propriétés privées variables d'instance. Depuis qu'ils sont privés, la seule façon
ils peuvent être accessibles à partir de l'extérieur de leur classe par le biais de méthodes dans la classe. L'
méthodes de modifier une valeur de la propriété sont appelées des méthodes de définition, et les méthodes
récupérer une valeur de la propriété sont appelées des méthodes de lecture.
Définir la variable dans vous mail, en utilisant la méthode
Puis utiliser l'objet Serialzation de sérialiser et dans d'autres classe désérialiser cet objet.
Dans la sérialisation d'un objet peut être représenté comme une séquence d'octets qui comprend les données de l'objet ainsi que des informations sur le type de l'objet et les types de données stockées dans l'objet.
Après un objet sérialisé a été écrit dans un fichier, il peut être lu à partir du fichier et désérialisé qui est, le type d'informations et d'octets qui représentent l'objet et ses données peuvent être utilisées pour recréer l'objet en mémoire.
Si vous voulez un tutoriel pour cela consulter ce lien
http://javawithswaranga.blogspot.in/2011/08/serialization-in-java.html
Obtenez variable dans d'autres classes
D. CommonUtilities
Vous pouvez faire une classe par votre auto qui peut contenir les données qui vous avez souvent besoin dans votre projet.
Échantillon
E. la transmission des Données à travers les Intentions de
Veuillez consulter ce tutoriel pour cette option de transmission de données.
http://shri.blog.kraya.co.uk/2010/04/26/android-parcel-data-to-pass-between-activities-using-parcelable-classes/
vous n'avez pas à..
appelez simplement newIntenet()à partir de la deuxième activité
Ajouter des données à transmettre
aller de l'avant avec setResult
et pouvez alors terminer
startActivityForResult()
Et voici un lien à partir du SDK avec plus d'informations:
http://developer.android.com/guide/appendix/faq/commontasks.html#opennewscreen
et faites défiler jusqu'à la partie intitulée "Renvoyant un Résultat à partir d'un Écran"
J'utilise souvent des variables statiques dans l'appel de l'activité de l'électricité statique setter pour les définir.
De cette façon, je peux modifier les valeurs dans toute activité à volonté, quel que soit le débit exact de contrôle entre les différentes activités.
Noter que cette astuce peut être utilisée uniquement si vous n'avez pas de soins sur le
l'instanciation de plus d'une copie de la même activité (classe) dans l'application,
pourtant, j'ai trouvé ceci pour être le plus facile à mettre en œuvre, et je l'utilise le plus.
La meilleure façon de le faire est de mettre une variable à une classe commune, qui est défini en dehors de la portée
à l'intérieur de votre code (par exemple OnButtonClick etc...)
à l'intérieur du code de
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
if (requestCode == Touches.PICK_CONTACT)
{
if (resultCode == Activité.RESULT_OK)
{
Uri contactData = données.getData();