Bonjour !
Depuis quelques jour j'apprends à coder des applications Android, mais là j'ai un problème...
En gros l'application est censée convertir du Celsius en Fahrenheit, et vice versa.
Ca compile sans problème mais quand je lance l'application sur l'Android virtuel, ça plante.
Je vous donne mon activity_main.xmlEt mon MainActivity.java
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 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:id="@+id/text_titre" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:text="CONVERTISSEUR C - F" android:textAppearance="?android:attr/textAppearanceLarge" /> <EditText android:id="@+id/editText1" android:layout_width="254dp" android:layout_height="wrap_content" android:layout_gravity="center" android:ems="10" android:hint="Rentrez la valeur à convertir" android:inputType="numberDecimal" /> <TextView android:id="@+id/text_unite" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="left" android:text="Unite :" android:textAppearance="?android:attr/textAppearanceMedium" /> <RadioGroup android:id="@+id/choix" android:layout_width="wrap_content" android:layout_height="wrap_content" android:checkedButton="@+id/radio2" android:orientation="horizontal"> <RadioButton android:id="@+id/choix_cel" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Celcius" /> <RadioButton android:id="@+id/choix_far" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Fahrenheit" /> </RadioGroup> <Button android:id="@+id/bouton_conv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:text="Convertir !" /> <TextView android:id="@+id/resultat" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:text="__" android:textAppearance="?android:attr/textAppearanceLarge" /> </LinearLayout>J'ai isolé le problème, c'est dans la partie ENVOI. Si je désactive le bouton Convertir, ça marche.. mais dès que je le réactive ça plante.
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
83
84
85
86
87
88
89
90 package appli.Jojoba; import android.app.Activity; import android.os.Bundle; import android.text.Editable; import android.text.TextWatcher; import android.view.KeyEvent; import android.view.MotionEvent; import android.view.View; import android.view.View.OnClickListener; import android.view.View.OnKeyListener; import android.widget.Button; import android.widget.CheckBox; import android.widget.EditText; import android.widget.RadioGroup; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends Activity { private final String defaut = "Vous devez cliquer sur le bouton « Convertir » pour obtenir un résultat."; Button b_conv = null; TextView tx_res = null; RadioGroup choix = null ; EditText saisie = null ; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // On récupère toutes les vues dont on a besoin b_conv = (Button)findViewById(R.id.bouton_conv); tx_res = (TextView)findViewById(R.id.resultat); choix = (RadioGroup) findViewById(R.id.choix); saisie = (EditText) findViewById(R.id.editText1); // On attribue un listener adapté aux vues qui en ont besoin saisie.addTextChangedListener(saisieWatcher) ; b_conv.setOnClickListener(b_convListener); // On met les valeurs par défaut } // On explicite les méthodes appelées dans les listener // SAISIE private TextWatcher saisieWatcher = new TextWatcher () { @Override public void afterTextChanged(Editable arg0) { } @Override public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) { } @Override public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) { tx_res.setText(defaut); } } ; //ENVOI private OnClickListener b_convListener = new OnClickListener () { String s = saisie.getText().toString(); float sValue = Float.valueOf(s) ; // saisie passée en nombre @Override public void onClick(View v) { if (choix.getCheckedRadioButtonId() == R.id.choix_cel){ sValue = sValue *9/5 + 32 ; tx_res.setText("Cela fait" + String.valueOf(sValue)+" F."); } else { sValue = (sValue - 32) * 5/9 ; tx_res.setText("Cela fait" + String.valueOf(sValue)+" C."); } }; }; }
Quelqu'un saurait-il m'indiquer comment résoudre ce problème ?
Merci à vous
Chocolatine_
Partager