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
|
// A noter que l'activité sera un click listener elle-même... plus simple à gérer à mon avis.
public class MainActivity extends Activity implements View.OnClickListener {
//On déclare toutes les variables dont on aura besoin (mais on n'a pas besoin des boutons !)
EditText ecranR;
EditText ecranT;
EditText ecranI;
/**
* Activité de l'interface graphique
*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(layout.activity_main);
//On récupère tous les éléments de notre interface graphique grâce aux ID (et on les stocke si besoin dans les variables préparées pour). J'aime bien préfixer par "this." pour bien spécifier qu'on parle des valeurs de *cette* instance de la classe.
this.ecranR = (EditText) findViewById(R.id.editText); // <= par soucis de cohérence, il serait bon de renommer ce champ de texte en "editText1"
this.ecranT = (EditText) findViewById(R.id.editText2); // l'idéal aurait quand même été de choisir R.id.editResistance, R.id.editTension et R.id.editIntensite
this.ecranI = (EditText) findViewById(R.id.editText3);
// ensuite on cré
((Button) findViewById(R.id.button)).setOnClickListener(this); // <= par soucis de cohérence, il serait bon de renommer ce bouton en "button1"
((Button) findViewById(R.id.button2)).setOnClickListener(this); // là encore l'idéal aurait été de choisir R.id.btnResistance, R.id.btnTension et R.id.btnIntensite
((Button) findViewById(R.id.button3)).setOnClickListener(this);
}
public void onClick(View view)
{
double resistance = (this.ecranR.getText().length() > 0) ? Double.parseDouble(this.ecranR.getText().toString()) : 0.0; // sinon on aura un crash si le champ est vide !
double tension = (this.ecranT.getText().length() > 0) ? Double.parseDouble(this.ecranT.getText().toString()) : 0.0;
double intensite = (this.ecranI.getText().length() > 0) ? Double.parseDouble(this.ecranI.getText().toString()) : 0.0;
switch (view.getId()) {
case R.id.button: // on calcule la résistance.
resistance = (intensite > 0.0) ? tension / intensite : 0.0; // on évite quand même les cas simple d'erreur !
this.ecranR.setText(Double.toString(resistance));
break;
case R.id.button2: // on calcule la tension.
tension = resistance * intensite;
this.ecranT.setText(Double.toString(tension ));
break;
case R.id.button3: // on calcule l'intensité.
intensite = (resistance > 0.0) ? tension / resistance : 0.0;
this.ecranI.setText(Double.toString(intensite));
break;
default:
break;
}
}
} |
Partager