Bonjour à tous,
Une question probablement basique d'un grand débutant ... que je me résoud à poser après avoir cherché (longtemps) et essayé plein de trucs .....
Ci dessous le code d'une appli me permettant de vérifier ma capacité à réaliser sous Android une appli que j'ai développé sur un PALM et dont je maitrise toute la partie calcul, algorithmes, etc ...
Je teste donc ma capacité à placer des botons et des champs où je veux, à récupérer et exploiter des valeurs saisies, afficher des résultats, etc ... et, à dessiner des formes géométriques calculées réalisées avec des cercles et des segments de droites.
Et après avoir transpiré sur le reste, c'est maintenant pour le dessin que ça coince, car, vous l'aurez compris, je suis très loin de penser en ANDROID !!!
Voici le code, l'écran est défini dans main.xml, et ça cela marche bien :
Quand je lance l'application dans l'émulateur, le bouton et les champs s'affichent, la saisie et le calcul fonctionnent, mais aucune ligne n'apparait pas plus qu'un fond blanc ....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82 package org.HSI03.riAndroid; import org.HSI03.riAndroid.R; import android.app.Activity; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.os.Bundle; import android.widget.EditText; //import android.widget.TextView; import android.widget.Button; import android.view.View; public class Hsi03Main extends Activity { // déclaration des objets dont on aura besoin private Button bGoto; private EditText fieldGoto; private EditText fieldRoute; private EditText fieldObs; private DessineView dessinCourant ; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); initSaisies(); // le lancement de ces méthodes se fait ici pour l'essai calculate() ; dessinCourant = new DessineView(this); //dessinCourant. } private void initSaisies()// méthode d'initialisation { // récupération des objets champs et bouton avec leur ressources du main.xml fieldGoto= (EditText)findViewById(R.id.fieldGoto); fieldRoute = (EditText)findViewById(R.id.fieldRoute); fieldObs = (EditText)findViewById(R.id.fieldObs); bGoto = (Button)findViewById(R.id.bGoto); // mise en place du listener du bouton qui lance la méthode calculate() bGoto.setOnClickListener(new Button.OnClickListener() { public void onClick (View v){ calculate(); }}); } private void calculate() { double valGoto = Double.parseDouble(fieldGoto.getText().toString()); double valRoute = Double.parseDouble(fieldRoute.getText().toString()); double vTotal = valGoto + valRoute ; fieldObs.setText(Double.toString(vTotal)); } static public class DessineView extends View { public DessineView(Context context) { super(context); } @Override protected void onDraw(Canvas canvas) { // Drawing commands go here float xA = 10; float yA = 10; float xB = 100; float yB = 100; Paint ColTrace = new Paint(); ColTrace.setColor(Color.BLUE); Paint ColFond = new Paint(); ColFond.setColor(Color.WHITE); canvas.drawRect(0, 0, 320, 400, ColFond); canvas.drawLine(xA, yA, xB,yB ,ColTrace); } } }
Qu'ai-je oublié ?
Qu'ai-je fait de travers ?
Oui, l'imagination des débutants est sans limite !
Merci de votre aide ...
Partager