Académique Documents
Professionnel Documents
Culture Documents
Tutorial Android PDF
Tutorial Android PDF
1. Configurer NetBeans
2. Crer un projet Android
3. Gestion dune interface
4. Gestion des listes droulantes
On peut citer :
http://mickael-lt.developpez.com/tutoriels/android/personnaliser-listview/
http://michel-dirix.developpez.com/tutoriels/android/integration-google-maps-
android/
1
OUTILS : PRPARATION DE LENVIRONNEMENT
Nous avons essay plusieurs versions dEclipse et il apparait que la version Helios (celle
utilis dans ce tuto) est celle qui fonctionne le mieux pour dvelopper un Projet Androd.
Voici le lien pour tlcharger la version 32 bits que nous avons utilis :
http://fc.isima.fr/~phan/tuto/ApplicationAndroid/eclipse-java-helios-win32.zip
2
Installer un nouveau Software .
3
Puis redmarrer Eclipse. Androd devrait tre install et visible.
4
3. Installation dun tlphone virtuel Androd
Remarque :
5
Ceci donne sur le disque dur un rpertoire android-sdk-windows contenant un excutable :
En lanant lexcutable, il est probable que vous ayez une erreur de ce type :
6
Fermer la deuxime fentre avec le bouton Cancel.
7
Cocher https.
Choisir ensuite
8
Choisir Install et attendre la fin des tlchargements.
9
Il ne reste plus qu crer un Virtual Devices qui comme son nom lindique sera un tlphone
Android Virtuel.
10
Le tlphone virtuel ainci cre doit apparaitre dans la liste des Virtual Devices.
En fonction de vos besoins, vous pouvez crer autant de tlphone virtuel que ncessaires. Ici
par exemple, on cre un tlphone V1 en recommenant lopration une deuxime fois.
11
Ce qui au final donnera :
12
OUTILS : ECLIPSE AND CO
Dmarrer Eclipse.
13
Choisir le rpertoire android-sdk-windows
14
15
Crer un projet
16
17
18
Ceci devrait donner :
19
Modifier le code du fichier HelloAndroid.java.
package com.android.helloandroid;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
20
Faire Run / Run
21
Attendre que le systme Android dmarre sur le tlphone.
Ce qui donne :
22
3. Gestion dune linterface
Faire un click droit sur res. Faire New / Androd XML File.
23
Saisir le texte suivant dans le fichier layout_file_name.xml
24
Ouvrir ensuite le fichier nomm HelloAndroid.java
Ce fichier se trouve dans gen/com.android.helloandroid/
package com.android.helloandroid;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
setContentView(R.layout.layout_file_name);
}
}
25
Faire Run / Run.
26
4. Gestion des listes droulantes
Etape 1. Crer un nouveau projet nomm essai_android_2 avec les paramtres suivantes :
Application name : Dvp_List
Package name : com.dvp.list
Create Activity : DVPList1
27
Lenvironnement Eclipse doit prsenter le projet comme suit :
package com.dvp.list;
import android.app.Activity;
import android.os.Bundle;
28
Le code doit tre modifi comme suit :
package com.dvp.list;
import android.app.Activity;
import android.app.ListActivity;
import android.os.Bundle;
29
Il faut le modifier comme suite :
import android.app.Activity;
import android.app.ListActivity;
import android.os.Bundle;
import android.app.Activity;
import android.app.ListActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
setListAdapter(adapter);
}
}
30
Etape 5. Tester le code.
31
5. Gestion des listes droulantes et des vnements
Par exemple, on peut considrer que chaque lment de la liste est un contact et se caractrise
par :
- un nom
- un prnom
- un numro (de tlphone).
32
Etape 2. Crer une classe nomme Contact.java
33
On peut dfinir de manire trs simple la classe contact avec uniquement un constructeur et
une mthode de classe permettant de crer une liste de contacts.
Tout ceci peut faire hurler les afficionados de lapproche objets mais cela reste simple et
lisible.
package com.dvp.list;
import java.util.ArrayList;
return listContact;
}
}
34
Il doit tre modifi comme suit :
<ListView android:id="@+id/ListView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</ListView>
</LinearLayout>
Faire un clic droit sur layout et choisir New / Others / Android / Android XML.
35
Ce fichier va dfinir la manire dont une instance de la classe Contact sera affiche.
36
On peut par exemple dfinir ce fichier comme suit :
<ListView android:id="@+id/ListView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</ListView>
</LinearLayout>
Nous allons crer un objet qui se chargera de grer le mapping entre nos donnes et le layout
des items. Ce composant sera bas sur un Adapter.
37
Le code gnr par dfaut est le suivant :
package com.dvp.list;
import java.util.List;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.LinearLayout;
import android.widget.TextView;
// le constructeur
public ContactAdapter(Context context, List<Contact> aListP) {
mContext = context;
mListP = aListP;
//Le LayoutInflater permet de parser un layout XML et de te transcoder en IHM Android.
mInflater = LayoutInflater.from(mContext);
}
38
Etape 6. Modification du fichier DVPList1.java
package com.dvp.list;
import java.util.ArrayList;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ListView;
import com.dvp.list.ContactAdapter;
La ligne :
ListView list = (ListView)findViewById(R.id.ListView01);
Est responsible dune erreur.
Faire un clic gauche dans la marge et choisir Create Field
39
Le fichier R.java ressemble alors ce qui suit :
40
Etape 8. Grer les vnments de la liste
package com.dvp.list;
import java.util.ArrayList;
import java.util.List;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.LinearLayout;
import android.widget.TextView;
// le constructeur
public ContactAdapter(Context context, List<Contact> aListP) {
mContext = context;
mListP = aListP;
//Le LayoutInflater permet de parser un layout XML et de te transcoder
en IHM Android.
mInflater = LayoutInflater.from(mContext);
}
41
TextView tv_Nom = (TextView)layoutItem.findViewById(R.id.TV_Nom);
TextView tv_Prenom =
(TextView)layoutItem.findViewById(R.id.TV_Prenom);
Ajouter la dfinition dune variable Click Listener comme suit (et importer le package
ncessaire : android.view.View.OnClickListener) :
42
OnClickListener ClickListener = new OnClickListener() {
@Override
public void onClick(View v) {
//Lorsque l'on clique sur le nom, on rcupre la position de la "Personne"
Integer position = (Integer)v.getTag();
//On prvient les listeners qu'il y a eu un clic sur le TextView "TV_Nom".
sendListener(mListP.get(position), position);
}
};
import java.util.ArrayList;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.os.Bundle;
import android.widget.ListView;
import com.dvp.list.ContactAdapter;
import com.dvp.list.ContactAdapter.ContactAdapterListener;
43
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
44
45
6. Intgrer Google Map dans Android
46
Relever le chemin daccs par dfaut Default debug keystore.
47
Ce qui donne :
La commande
kytool -list keystore
C:\Users\lacomme.T3500-PC\.android\debug.keystore
donne sur ma machine :
48
Il est possible que vous obteniez lerreur suivante :
Microsoft Windows [version 6.0.6001]
Copyright (c) 2006 Microsoft Corporation. Tous droits rservs.
Cela veut dire que le chemin daccs dans votre path ne contient pas le chemin
correct vers lexcutable.
Si vous avez raliser une installation standard des diffrents lments (SDK
etc), il est probable que le JDK soit dans le rpertoire Sun sous la racine.
49
Faire ensuite Modifier / Copier.
50
Vrifier que la copie de votre MD5 sest effectue correctement.
51
Etape 2. Obtenir une cl Google.
52
Aprs quelques secondes, vous devriez obtenir une page web vous donnant votre cl :
Cl : 0*************************************Q
MD5 : 4D*************************************1F
Et un exemple de code :
<com.google.android.maps.MapView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:apiKey="0*******************************Q"
/>
53
Etape 3. Crer une application Androd.
54
55
Le projet ainsi cre doit se prsenter comme suit :
56
Aller dans longlet Permissions.
57
Dans le champ Name choisir :
android.permission.ACCESS_COARSE_LOCATION
58
Passez ensuite sur longlet AndroidManifest.xml et vrifier que vous obtenez un fichier
similaire celui-ci :
59
Et finalement une troisime fois en choisissant :
android.permission.INTERNET
</application>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
</manifest>
60
Prenez le temps de vrifier que le programme compile et sexcute. Ceci devrait donner :
61
Aller dans Available Packages.
62
Accepter les conditions de la licence et faire Install.
63
Etape 6. Ouvrir lefichier nomm strings.xml
64
Aller dans Ressoures et choisir add->String.
65
Le fichier doit se prsenter comme suit :
</LinearLayout>
66
Etape 8. Modifier le fichier AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="google.dvp.essai"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name"
android:debuggable="true">
</application>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
</manifest>
67
Aller dans la partie Androd et modifiez la target .
package google.dvp.essai;
import android.app.Activity;
import android.os.Bundle;
import android.*;
import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapController;
import com.google.android.maps.MapView;
68
public class EssaiGoogleApi extends MapActivity {
@Override
protected boolean isRouteDisplayed() {
return false;
}
69
Faire ensuite New.
70
Ce qui donne la fin :
Comme notre machine V1Google est la seule compatible elle est immdiatement
slectionne.
71
Ce qui donne :
72
Etape 11. Golocaliser un point
import android.app.Activity;
import android.os.Bundle;
import android.*;
import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapController;
import com.google.android.maps.MapView;
this.mapView.setClickable(true);
this.mc = this.mapView.getController();
// on positionne la carte sur l'isima
double latitude = 45.758891;
double longitude = 3.111223;
this.location = new GeoPoint((int)(latitude*1000000.0),(int)(longitude*1000000.0));
this.mc.setCenter(this.location);
this.mc.setZoom(25);
this.mapView.setSatellite(true);
this.mapView.invalidate();
setContentView(this.mapView);
}
@Override
protected boolean isRouteDisplayed() {
return false;
}
73
A lexcution, on obtient une carte centre sur lISIMA.
74
OUTILS : NETBEANS AND CO
1. Configurer NetBeans
Lancer NetBeans.
75
Aller dans Settings et faire ensuite Add.
76
Dans le champ Name, on peut choisir Kenai par exemple et dans le champ URL ladresse
suivante : http://kenai.com/downloads/nbandroid/updates.xml
77
Choisir ensuite Androd et lancez linstallation (bouton Install).
78
Patientez quelques secondes pendant linstallation
Certains plugins ne sont pas signs. Une autorisation est ncessaire pour raliser linstallation.
79
2. Crer un projet Android
80
Choisir ensuite Manage Plateforms.
81
Choisir Add Platform
82
83
84
Modifier le programme principal comme suit :
package org.me.androidapplication1;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
85
Ceci devrait donner comme rsultat dexcution :
86
3. Crer un bouton (un exemple simpliste !)
import android.app.Activity;
import android.os.Bundle;
import android.widget.Button;
import android.widget.TextView;
87
4. Gestion des listes
Etape 1 : il faut modifier le type dapplication cre. Remplacer Activity par ListActivity.
Etape 2 :
88
Modifier le fichier main.xml comme suit :
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<ListView android:id="@android:id/list"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</ListView>
</LinearLayout>
import android.app.ListActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.Button;
public class MainActivity extends ListActivity{
setListAdapter(adapter);
}
}
89
Etape 4 : Inclure la librairies Android Ant Task.
90