Extrait du cours apprendre à développer son application Android
Dans la première ligne, on déclare une variable nommée vButton1 de type Button représentée par l’élément « button1″ dans le xml.
La deuxième ligne est plus intéressante car on commence à parler d’évènements.
On place un Listener sur le Bouton, c’est à dire que le bouton se met à l’écoute des évènements de « OnClick » et l’on déclare une méthode Onclick qui sera exécutée lors d’un click sur le bouton « Hello ». Nous placerons le code de ce que nous voulons que l’application fasse entre les « {} » de la méthode :
public void onClick(View v)
{
// code qui sera executer lors d’un click sur le bouton Hello
}
Déclarons le WebView :
final WebView vWebView = (WebView)findViewById(R.id.webView1);
vWebView.setWebViewClient(new WebViewClient() {
public void onPageFinished(WebView view, String url) {
// quand la page a fini de s’afficher on repasse la progress bar à l’etat Indeterminate = false
// cela mettra fin à son animation
vProgressBar.setIndeterminate(false);
}
});
La WebView est mise à l’écoute des évènement du web. Quand elle recoit un évènement de fin de chargement de page »onPageFinished » le méthode de même nom s’exécutera.
Dans cette méthode on fixera l’état de la ProgressBar à un état déterminé ce qui aura pour effet d’en arrêter l’animation. En effet lorsque l’on fixe une progressBar à l’état indéterminé elle s’anime. Vous le verrez lors du premier lancement de l’application dans l’émulateur.
Maintenant déclarons l’autre bouton :
Button vButtonWeb = (Button)findViewById(R.id.button2);
vButtonWeb.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
vProgressBar.setIndeterminate(true);
vTextView.setText(« Go go go !! »);
vWebView.loadUrl(« http://www.android-pour-les-nuls.fr »);
}
});
Un click sur ce bouton aura pour conséquence de :
Passer la progressBar à l’état indéterminé (pour qu’elle s’anime), afficher « Go go go !! » dans le TextView et ouvrir la page de notre site dans le WebView.
Maintenant nous allons coder l’action qui sera faite après un click sur le bouton « Hello ». voici ce que nous allons coder mais en français :
– Récupérer le texte saisi dans le EditText
si
le texte saisi est une url genre « google.fr » donc contient un « . »
alors
lancer l’animation de la progressbar
ajouter « http://www. » au texte saisie afin d’avoir une URL complète
ouvrir cette url dans la webView
afficher « Go to » et le texte saisi dans le TextView
sinon
afficher « Hello » et le texte saisi dans le TextView
Ce qui donne en Java pour la méthode onClick :
public void onClick(View v)
{
String vTexteSaisie = vEditText1.getText().toString();
// si le texte saisie contient .
if (vTexteSaisie.contains(« . »))
{
// on transforme de texte saisi en URL
// ex : on saisit « free.fr » on naviguera vers « http://www.free.fr »
// on force la progressbar a Indeterminate = true comme ca elle est animée
vProgressBar.setIndeterminate(true);
vWebView.loadUrl(« http://www. »+vTexteSaisie);
vTextView.setText(« Go to « +vEditText1.getText()+ » !! »);
}
// sinon
else
vTextView.setText(« hello « +vEditText1.getText()+ » !! »);
}
Donc le code source de l’application donne :
package fr.apln.TutoAndroid_1;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ProgressBar;
import android.widget.TextView;
public class TutoAndroid_1 extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// ici on fixe des noms de variable a nos elements
final EditText vEditText1 = (EditText)findViewById(R.id.editText1);
final TextView vTextView = (TextView)findViewById(R.id.textView1);
final ProgressBar vProgressBar = (ProgressBar)findViewById(R.id.progressBar1);
// par code on efface de texte du TextVeiw
vTextView.setText(« »);
// Ecouteur sur le WebView. on intercepte ici l’evenement de fin de téléchargement de la page
final WebView vWebView = (WebView)findViewById(R.id.webView1);
vWebView.setWebViewClient(new WebViewClient() {
public void onPageFinished(WebView view, String url) {
// quand la page a fini de s’afficher on repasse la progress bar à l’etat Indeterminate = false
// cela mettra fin à son animation
vProgressBar.setIndeterminate(false);
}
});
// Ecouteur sur le bouton Nav
Button vButtonWeb = (Button)findViewById(R.id.button2);
vButtonWeb.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
vProgressBar.setIndeterminate(true);
vTextView.setText(« Go go go !! »);
vWebView.loadUrl(« http://www.android-pour-les-nuls.fr »);
}
});
// Ecouteur sur le bouton Hello
Button vButton1 = (Button)findViewById(R.id.button1);
vButton1.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
String vTexteSaisie = vEditText1.getText().toString();
// si le texte saisie contient .
if (vTexteSaisie.contains(« . »))
{
// on transforme de texte saisi en URL
// ex : on saisit « free.fr » on naviguera vers « http://www.free.fr »
// on force la progressbar a Indeterminate = true comme ca elle est animée
vProgressBar.setIndeterminate(true);
vWebView.loadUrl(« http://www. »+vTexteSaisie);
vTextView.setText(« Go to « +vEditText1.getText()+ » !! »);
}
// sinon
else
vTextView.setText(« hello « +vEditText1.getText()+ » !! »);
}
});
}
}
Les lignes commençant par « // » sont des lignes de commentaires, elles aident à la compréhension du code et dans des applications plus complexes à la maintenance en indiquant ce que le développeurs a voulu coder.
……
Apprendre à développer son application Android (1,18 MO) (Cours DOC)