UNIVERSITE DE SOUSSE
Institut Supérieur des
Sciences Appliquées et de جــامعة سوسة
Technologie de Sousse | المعهد العالي للعلوم التطبيقية والتكنولوجيا بسوسة
Sousse
TD3 : Intent A.U. : 2024/2025
Matière : Developpement mobile
Enseignante : Ines Regaig
Classe : LSI-A3
Exercice 1 :
On a une application composée de deux activités :
1. FirstActivity :
• Contient un bouton.
• Lorsque l'utilisateur clique sur ce bouton, SecondActivity s'ouvre.
2. SecondActivity :
• Contient un TextView qui affiche le message suivant :
« Welcome to the SecondActivity ».
Complétez le code Java pour que le bouton dans FirstActivity ouvre SecondActivity.
Code Xml pour FirstActivity (activity_first.xml)
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center"
android:padding="16dp">
<TextView
android:id="@+id/textViewWelcome"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Welcome to the second activity"
android:textSize="20sp"
android:textColor="@android:color/black" />
</LinearLayout>
Code xml pour SecondActivity (activity_second.xml)
<?xml version="1.0" encoding="UTF-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center"
android:padding="16dp">
<Button
android:id="@+id/buttonGoToSecond"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Go to the second activity" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
Code Java pour FirstActivity (FirstActivity.java)
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Référence au bouton
Button buttonGoToSecond = ………………………………………(……………………………………………………………);
// Gérer le clic du bouton
…………………………………………………………………………………………………………………………………………….
@Override
public void ……(…) {
// Lancer l'activité B
……………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………
}
});
}
}
Exercice 2 :
On a une application composée de deux activités :
1. FirstActivity :
o Contient deux champs de saisie (un pour le nom, un pour l’âge).
o Contient un bouton.
o Lorsque l'utilisateur saisit son nom et son âge, puis clique sur le bouton, l'application ouvre
SecondActivity en transmettant le nom et l'âge.
2. SecondActivity :
o Contient deux TextView pour afficher le nom et l'âge reçus de FirstActivity.
Complétez le code Java pour que les données saisies dans FirstActivity soient transmises à
SecondActivity, où elles seront affichées.
XML pour FirstActivity (activity_first.xml)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="16dp">
<EditText
android:id="@+id/editTextName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Entrez votre nom" />
<EditText
android:id="@+id/editTextAge"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Entrez votre âge"
android:inputType="number" />
<Button
android:id="@+id/buttonSend"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Envoyer"
android:layout_gravity="center_horizontal"
android:layout_marginTop="16dp" />
</LinearLayout>
Code Java pour FirstActivity (FirstActivity.java)
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Récupérer les vues
………………………………………………………………………………………………
………………………………………………………………………………………………
// Ajouter l'événement du bouton
buttonSend.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Récupérer les valeurs saisies
String name = editTextName.getText().toString();
……………………………………………………………………………………………………………………………
// Créer un intent pour lancer l'Activité B
………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
// Démarrer l'Activité B
startActivity(intent);}
});
}
}
XML pour SecondActivity (activity_second.xml)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="16dp">
<TextView
android:id="@+id/textViewName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Nom : "
android:textSize="18sp" />
<TextView
android:id="@+id/textViewAge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Age : "
android:textSize="18sp"
android:layout_marginTop="8dp" />
</LinearLayout>
Code Java pour SecondActivity (SecondActivity.java)
public class SecondActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
// Récupérer les vues
TextView textViewName = findViewById(R.id.textViewName);
………………………………………………………………………………………………………………………………………………
// Récupérer les données envoyées par l'Activité A
String name = getIntent().getStringExtra("EXTRA_NAME");
……………………………………………………………………………………………………………………………………
String nameMessage = "Nom : " + name;
………………………………………………………………………………………………………
// Afficher les données dans les TextView
textViewName.setText(nameMessage);
………………………………………………………………………………………………………
}
}
Exercice 3 :
Développez une application Android avec une barre d'outils qui contient un menu d'options. Ce menu doit
inclure :
1. "Ajouter une photo".
2. "Supprimer une photo".
3. "À propos".
Lorsqu'une option est sélectionnée, affichez un Toast indiquant l'option choisie.
Étape 1 : Créer le menu XML
Créez un fichier de menu XML appelé menu_main.xml dans le dossier res/menu.
Fichier : menu_main.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/menu_add"
android:title="Ajouter une photo"
android:icon="@android:drawable/ic_menu_add"
app:showAsAction="always" />
<item
android:id="@+id/menu_delete"
android:title="Supprimer une photo"
android:icon="@android:drawable/ic_menu_delete"
app:showAsAction="always" />
<item
android:id="@+id/menu_about"
android:title="À propos"
app:showAsAction="never" />
</menu>
Étape 2 : Configurer l'activité principale
Créez ou modifiez l'activité principale pour inclure le menu dans la barre d'outils.
Fichier : MainActivity.java
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
}
@Override
public boolean ……………………………………………………………(Menu menu) {
// Lier le menu XML à l'activité
getMenuInflater().inflate(R.menu.menu1, menu);
return true;
}
@Override
public boolean ……………………………………………………………(MenuItem item) {
// Récupérer l'identifiant de l'élément sélectionné
int id = item.getItemId();
if (id == R.id.menu_add) {
…………………………………………………………………………………………………………………….
return true;
} else if (id == R.id.menu_delete) {
…………………………………………………………………………………………………………………….
return true;
} else if (id == R.id.menu_about) {
………………………………………………………………………………………………………………………
return true;
} else {
return super.onOptionsItemSelected(item);
}
}
Étape 3 : Ajouter le layout principal
Créez un fichier de layout pour l'activité principale avec une barre d'outils.
Fichier : activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<!-- Barre d'outils avec contraintes -->
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="0dp"
android:layout_height="?attr/actionBarSize"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
android:background="@color/violet"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>