Application conversion Celsius / Fahrenheit
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.xml
Code:
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> |
Et mon MainActivity.java
Code:
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.");
}
};
};
} |
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.
Quelqu'un saurait-il m'indiquer comment résoudre ce problème ?
Merci à vous
Chocolatine_