TP3_LSI3.docx
TP3_LSI3.docx
TP3_LSI3.docx
FACULTÉ DES
Année Universitaire : 2023-2024
SCIENCES DE SFAX
TP3 : Implémentation de la logique d’une activité
Objectifs
Au terme de cette activité, l'étudiant sera capable de
● Implémentation de la logique d’une activité
● implémentation d’un listener explicite pour un view de type SeekBar par la redéfinition de la
méthode onProgressChanged() de l’interface statique SeekBar.OnSeekBarChangeListener()
● implémentation d’un listener explicite par la redéfinition de la méthode onClick() de l’interface
statique View.OnClickListener
Type de l'activité : Individuel
Ressources :
● Consultez le cours Développement Mobile : séance 2.
Environnement :
● JDK >= 1.8
● L’IDE Android Studio (Dernière version Android Studio Giraffe - 2022.3.1)
● Utilisez votre espace de travail qui porte le nom : Nom_Prénom_LSI3_DepMobile
● Déposez le lien de votre travail sur GitHub dans l’ENT.
Travail demandé
L’application de mesurer de niveau de glycémie comporte une Activité nommée « MainActivity ». Dans cette
activité, le patient peut mesurer le niveau de glycémie en spécifiant son âge, la valeur mesurée et s’il jeûne ou pas.
D’abord, le patient spécifie son âge dans une vue de type « SeekBar » dont le maximum de l'échelle est 120 ans.
Le niveau de glycémie change si le patient jeûne ou bien s’il a un repas. Pour cela il doit répondre à la question «
Est-ce que vous jeûnez ? » par choisir la réponse « oui » ou « non » en utilisant deux vues de type « RadioButton
» regroupées dans un « RadioGroup ».
Après avoir saisi ses propriétés, le patient appuie sur le bouton « Calculer ». L’action de clic sur ce bouton
affiche, dans un textView, la réponse calculée du niveau de glycémie à partir des spécifications saisies.
Pour déterminer si le niveau de glycémie d’un patient est normal ou pas, on suit les règles suivantes : Pour chaque
personne, avant les repas (ou s’il jeune), le niveau de glycémie normale doit être :
• De 5,0 à 7,2 mmol/L pour les adultes et les enfants de plus que 13 ans.
• De 5,0 à 10,0 mmol/L pour les enfants de 6 à 12 ans.
• De 5,5 à 10,0 mmol/L pour les enfants de moins de 6 ans.
Après les repas, le niveau de glycémie doit être :
• Moins de 10.5 mmol/L pour les adultes et les enfants.
Page 1 sur 4
Si le niveau de glycémie du patient est normal, l’application affiche “ niveau de glycémie est normale”, sinon, si
ce niveau est inférieur ou supérieurs à ces intervalles, l’application affiche le texte : “ niveau de glycémie est trop
bas ” ou “ niveau de glycémie est trop élevée”.
Dans ce TP, vous êtes demandé de réaliser la logique de cette application. Ce TP se déroulera en 3 phases :
Description de la 1ère phase : Création du projet de l’application
1. Créer sur le Bureau un document Word qui porte votre Nom_Prénom_TP3.docx pour insérer les imprimes
écrans de chaque étape demandée ci-dessous
2. Choisir le projet réalisé précédemment dans le TP2.
Vous êtes appelé à implémenter les fonctionnalités nécessaires dans l’activité MainActivity. Pour ce faire,
1. Intégrer des instances des sous-classes de View nécessaires en tant que attributs du classe
MainActivity pour la logique de l’application (tels que les TextView, EditText, RadioButton,
Button, SeekBar, etc.).
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
Page 2 sur 4
2. Créer une méthode nommée init() et faire son appel dans la méthode onCreate(). Compléter le code
de la méthode init() qui initialise les attributs de la classe MainActivity par la récupération de leurs
références dans la mise en page (le layout dans activity_main.xml). Pour ce faire, utiliser la méthode
findViewById() qui recherche une vue suivant son ID dans la mise en page associée à l’activité.
3. L’interface utilisateur propose un SeekBar pour spécifier l'âge du patient. Lorsque l’utilisateur
augmente ou diminue la valeur du Seekbar, Le TextView, dont l’ID est “tvAge” (au dessus du
Seekbar), affiche un message à l’utilisateur qui comporte : Votre âge + la valeur choisie. Exemple :
Pour implémenter cet événement, vous pouvez créer un listener sur le changement du SeekBar en
utilisant la méthode setOnSeekBarChangeListener(). Dans notre cas, on n'a besoin que de
surcharger la méthode onProgressChanged():
sbAge.setOnSeekBarChangeListener(new
SeekBar.OnSeekBarChangeListener(){
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean
fromUser)
{
Log.i("Information", "onProgressChanged "+progress);
// affichage dans le Log de Android studio pour voir les
changements détectés sur le SeekBar ..
tvAge.setText("Votre âge : "+ progress);
// Mise à jour du TextView par la valeur : progress à chaque
changement.
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {}
});
4. Développer la méthode calculer() qui est reliée au listener de l’action de clic sur bouton
CONSULTER implicitement créé par le code XML de l’attribut android:onClick du bouton
(android:onClick="calculer").
Page 3 sur 4
public void calculer (View view) { ... }
5. Implémenter un listener explicite pour l'événement de clic du bouton CONSULTER. Le code du
listener explicite doit remplacer le listener implicite de ce bouton. Le listener explicite se fait par la
redéfinition de la méthode onClick() de l’interface statique View.OnClickListener pour le
bouton CONSULTER.
consulterBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v)
{
// A completer
}
});
À la fin de la séance :
● Déposez votre document Word dans l’espace de dépôt sur l’ENT.
● Déposez votre projet sur GitHub et son lien dans l’espace de dépôt sur l’ENT.
Page 4 sur 4