TP Android Les Intents avec passage de données



Documents pareils
TP SIN Programmation sur androïde Support : eclipse

Projet Android (LI260) Cours 2

Créer des applications Android

Programmation Mobile Android Master CCI

Outils, langage et approche Android Une introduction. Nicolas Stouls lyon.fr

Programmation des applications mobiles avec Android. 1 Inspiré du cours de Olivier Le Goaer

TP au menu «UI ANDROID»

Tutoriel Android. Pour démarrer la programmation d'applications Android

Module Architecture des systèmes mobiles : Android première partie Didier FERMENT - UPJV

Programmation mobile avec Android

SOMMAIRE

Tutorial pour une application simple

Programmation Android L3 informatique

Warren PAULUS. Android SDK et Android x86

APPLICATIONS JAVA. 1. Android. Développement d'activités Java sous Android. Android Partie I. L'architecture du système Android. Application Android

De Java à Android version 0.1

Android 101. Rémi Forax

Développement sous Android

Gestion des différentes tailles d écran

Développement Android. J.-F. Couchot

Tutoriel Android - TP de prise en main

Les fondamentaux du développement d applications Java

TP2 : Client d une BDD SqlServer

Développement sous Android

Android Publish/Subscribe, GCM, Google Cloud Messaging : une introduction

Introduction ANDROID

Android et le Cloud Computing

Annexe Android Studio

Encore plus de widgets et de conteneurs

Architectures Mobiles

1.3 Gestion d'une application

TP1 : Initiation à Java et Eclipse

Guillaume GENS

IFT287 Exploitation de base de données relationnelles et orientées objet. Laboratoire Mon premier programme Java en Eclipse

2010/2011 [PROJET TEXT TO SPEECH] Génie Logiciel des Interactions Homme-Machine. Germain Costenobel Pierre Barois

Terminaux Mobiles Communicants

TP1 : Initiation à Java et Eclipse

TD/TP 1 Introduction au SDK d Android

Education Delivery Intelligent Tool

[Projet S9] Rédacteurs & Contributeurs Entité Rédacteurs Contributeurs Imededdine HOSNI Olivier MARTY. Validation du document Nom Date Visa

Approche Contract First

BIRT (Business Intelligence and Reporting Tools)

Android en action. Abdelkader Lahmadi Université de Lorraine

Alfstore workflow framework Spécification technique

DÉVELOPPEMENT ANDROID

Épisode 2 : Les outils de développement Alain Menu édition 2.1, septembre 2013

Les connexions sans fil avec Android. JMF (Tous droits réservés) 1

Diagramme de déploiement

1. Base de données SQLite

Développement web et mobile

Création d un service web avec NetBeans 5.5 et SJAS 9

WebParts. Version 1.0

- TP Programmation Android - NFA024 Conservatoire National des Arts et Métiers

Web Tier : déploiement de servlets

NOTICE TELESERVICES : Demander un état hypothécaire

TD Objets distribués n 3 : Windows XP et Visual Studio.NET. Introduction à.net Remoting

Architecture Orientée Service, JSON et API REST

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

Programmation Par Objets

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Développement Logiciel

[APPLICATON REPARTIE DE VENTE AUX ENCHERES]

JADE : Java Agent DEvelopment framework. Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry.

Interfaces graphiques avec l API Swing

Travail d'étude et de Recherche

1. Installation d'un serveur d'application JBoss:

RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION)

Android. Android is an environment where the biggest limitation is your imagination. P1 1

Android UIThread, Thread, Handler et AsyncTask

WEBSERVICES. Michael Fortier. Master Informatique 2ème année. A308, Université de Paris 13

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

Construire des plug-ins pour SAS Management Console SAS 9.1

Chapitre 2. Classes et objets

Flex. Lire les données de manière contrôlée. Programmation Flex 4 Aurélien VANNIEUWENHUYZE

Java Licence Professionnelle Cours 7 : Classes et méthodes abstraites

Développement d'applications pour Android

Création d une application Android (APPInventor)

Applet pour visualiser les variables «automate» notifiées

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :

TP Composants Java ME - Java EE. Le serveur GereCompteBancaireServlet

Page 1 sur 5 TP3. Thèmes du TP : l la classe Object. l Vector<T> l tutorial Interfaces. l Stack<T>

Présentation du système d exploitation Open Source ANDROID

Corrigé des exercices sur les références

Remote Method Invocation Les classes implémentant Serializable

Générer du code à partir d une description de haut niveau

Compte-rendu de projet de Système de gestion de base de données

Développement d'applications pour Android. M. Dalmau IUT de Bayonne Pays Basque

Génie Logiciel et Interaction Homme-Machine PROJET UCAMPUS

Chapitre 10. Les interfaces Comparable et Comparator 1

SYNC FRAMEWORK AVEC SQLITE POUR APPLICATIONS WINDOWS STORE (WINRT) ET WINDOWS PHONE 8

TD/TP PAC - Programmation n 3

Etude et développement d un moteur de recherche

Projet Active Object

Android. Présentation d Android. Florent Garin

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.

Comparaison entre les applications natives et les web apps dans le domaine des Smartphones

Compte Rendu d intégration d application

Programmation Objet Java Correction

Transcription:

TP Android Les Intents avec passage de données Romain Raveaux Polytech Tours Dans le TP précédent, nous avons vu comment démarrer une nouvelle fenêtre par le biais d une action sur un bouton posé sur une vue active. A présent, nous allons voir comment une activité 1 peut transmettre des données à une autre activité. Sommaire 1 ) Passer des données entre Activity sous android...2 Fenêtre 1 vers Fenêtre 2...2 Retour vers la Fenêtre 1...5 2 ) Passage d objets en entre fenêtres...6 3 ) à Rendre :...6

1 ) Passer des données entre Activity sous android Dans ce TP, nous allons développer une application permettant de naviguer entre deux fenêtres à l aide d Activity, tout en passant un objet entre ces deux fenêtres. Dans chaque fenêtre, nous disposerons un bouton et un champ de texte (EditText). Dans le sujet du TP, vous trouverez du code. Ce dernier n'est pas forcément complet et c'est à vous de le compléter. N'oubliez pas de créer le code JAVA et les fichiers XML correspondant. Fenêtre 1 vers Fenêtre 2 1 ) A faire : Créez 2 fenêtres fenetre1 et fenetre2. Dans chaque fenêtre, nous disposerons un bouton et un champ de texte (EditText). 2 ) A faire :Récupération des objets de la vue graphique Button btaction = (Button) findviewbyid(r.id. Btecrire); 3 ) A faire :Associer un événement à un objet //Creation du listener OnClickListener monlisteneraction = new Button.OnClickListener() { public void onclick(view v) { //Todo ; //on ajoute le listener au bouton btaction.setonclicklistener( monlisteneraction) ; 4 ) Envoyer une donnée à une autre activity. //création de notre intent Intent defineintent = new Intent(lecontext, FenetreClass2.class); // objet qui vas nous permettre de passe des variables ici la variable passinfo Bundle objetbunble = new Bundle(); objetbunble.putstring("passinfo",textchampsaisie.gettext().tostring()); // on passe notre objet a notre activities defineintent.putextras(objetbunble ); // on appelle notre activité lecontext.startactivity(defineintent);

Un exemple de code vous est proposé ci-dessous. public class FenetreClass1 extends Activity{ @Override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.fenetre1); lecontext = this; //récupération du text dans le champ de saisie final EditText textchampsaisie = (EditText) findviewbyid(r.id.text); Button btaction = (Button) findviewbyid(r.id. btecrire); //action sur le bouton click appelle de la nouvelle activité btaction.setonclicklistener(new Button.OnClickListener() { public void onclick(view v) { //création de notre item Intent defineintent = new Intent(lecontext, FenetreClass2.class); // objet qui vas nous permettre de passe des variables ici la variable passinfo Bundle objetbunble = new Bundle(); objetbunble.putstring("passinfo",textchampsaisie.gettext().tostring()); // on passe notre objet a notre activities defineintent.putextras(objetbunble ); // on appelle notre activité lecontext.startactivity(defineintent); );

Récupération des informations passées par la classe FenetreClass1.class à la classe FenetreClass2.class public class FenetreClass2 extends Activity{ @Override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.fenetre2); lecontext = this; lecontext.settitle("fenetre 2"); //récupération du text dans le champ de saisie final EditText textchampsaisie = (EditText) findviewbyid(r.id.text); Bundle objetbunble = this.getintent().getextras(); // récupération de la valeur String InfoPasse= objetbunble.getstring("passinfo"); // on afffiche l'information dans l'edittext textchampsaisie.settext(infopasse); Ensuite le plus important, il faut déclarer ces différentes activity dans le fichier AndroidManifest.xml. Un exemple vous est proposé ci-dessous : <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="org.com.test" android:versioncode="1" android:versionname="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".fenetreclass1" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent-filter> </activity> <activity android:name=".fenetreclass2" android:screenorientation="portrait"></activity> </application> <uses-sdk android:minsdkversion="3" /> </manifest>

1 ) Construire le diagramme des états des activités durant ces actions : (voir exemple cidessous)

Retour vers la Fenêtre 1 Nous avons réussi à passer une information, de la fenêtre 1 vers la fenêtre 2. Maintenant, nous souhaitons que la fenêtre 2 retourne une information à la fenêtre 1 par l appuie sur un bouton. 1 ) Dans la fenêtre 1, il faut démarrer l activity avec l intention d attendre un résultat. lecontext.startactivityforresult(defineintent,fenetre1id); Fenetre1ID : est un int, un identifiant choisi arbitrairement représentant l ID de l activity Fenetre1. 2 ) Dans la fenêtre 2, placer les éléments nécessaires afin d envoyer la chaine de caractères HelloWorld à la fenêtre 1 lors de l appuie sur un bouton. - Le listener sur le bouton - Le bundle à envoyer à l autre fenêtre. - L intent de fenêtre 1 vers fenêtre 2 - Un code retour (0 par exemple) Terminer votre fonction par la commande suivante : //Envoie le résultat suivant l intent défini. setresult(coderetourok,intent); //Demande la destruction de la fenêtre courante. finish(); 3 ) La fenêtre 1 doit pouvoir capter les informations envoyées par la fenêtre 2. Pour ce faire, il faut implémenter dans la fenêtre 1 la fonction onactivityresult: @Override protected void onactivityresult(int requestcode, int resultcode, Intent data) { super.onactivityresult(requestcode, resultcode, data); // Si le résultat provient d une demande de la fenêtre1 if (requestcode == this.fenetre1id) { // le code retour est bon if (resultcode == coderetourok) { //récupérer les informations //et les afficher dans TextView Récupérer les informations transmises par la fenêtre 2 et afficher les dans le TextView de la fenêtre 1. 4 ) Construire le diagramme des états des activités durant ces actions.

2 ) Passage d objets en entre fenêtres - Créer une classe Personne qui contiendra le nom, le prénom et l age d une personne. - La fenêtre 1 permettra de remplir des champs de texte contenant le nom, le prénom et l age d une personne. - Un bouton «Submitt» enverra les informations de la fenêtre 1 vers une fenêtre 2. La fenêtre 1 enverra un objet de type Personne à la fenêtre 2. - La fenêtre 2 affichera le nom et le prénom de la personne - Conclure sur la contrainte liée aux passages d'objets entre Activity