:: Enseignements :: ESIPE :: E4INFO :: 2014-2015 :: Interface Graphique avec Android ::
[LOGO]

Fragments, WebView


Le but du TD est d'implanter une application qui affiche une liste d'URLs. Quand l'une d'entre elles est touchée, la page web correspondante devra s'afficher à côté dans le cas d'une tablette ou d'une orientation paysage du téléphone. Elle recouvrera la liste dans le cas d'une orientation portrait du téléphone. Pour réaliser ceci, nous utiliserons des fragments.
Nous allons commencer par implanter le cas d'une orientation portrait du téléphone au moyen de deux activités contenant chacune un Fragment. Puis, nous adapterons notre code pour traiter le cas d'une tablette ou d'une orientation paysage du téléphone.

Exercice 1 - Une première activité

  1. Quelle est l'utilité d'un Fragment? A quoi servent un ListFragment et un ListAdapter?
  2. Créer une activité MainActivity qui contient un fragment UrlListFragment contenant une liste d'URLs. La liste sera remplie à la main pour l'instant.
  3. Tester cette activité.

Exercice 2 - Une deuxième activité

  1. Créer une activité WebPageActivity qui contient un fragment WebPageFragment contenant une page web. Vous utiliserez une WebView. Pour l'instant, la page web par défaut est: http://esipe.univ-mlv.fr.
  2. Tester cette activité. Pourquoi ne fonctionne-t-elle pas?
  3. Déclarer l'activité dans le Manifest de l'application.
  4. Modifier les permissions dans le Manifest de l'application pour autoriser l'application à aller sur internet.
  5. A quoi sert la méthode setWebViewClient d'une WebView? Utiliser cette méthode.
  6. Retester l'activité WebPageActivity.

Exercice 3 - Invoquer une activité à partir d'une autre

  1. Comment faire en sorte qu'en touchant un item de la liste dans MainActivity l'activité WebPageActivity soit invoquée?
  2. Ecrire le code de la solution proposée.
  3. Comment faire en sorte que la page web ouverte soit celle correspondent à l'url touchée?
  4. Ecrire le code de la solution proposée.

Exercice 4 - Deux fragments côte-à-côte

  1. Créer un nouveau layout permettant de placer les deux fragments des deux activités précédentes côte à côte.
  2. Modifier l'activité MainActivity pour gérer dynamiquement l'application suivant les deux cas évoqués.