Dans mon code, si l'utilisateur appuie deux fois sur le bouton radio, la valeur sera calculée deux fois. Comment puis-je empêcher cela? J'utilise une instruction switch dans un onClick.Appuyer deux fois sur un bouton radio, calcule deux fois
@Override
public void onClick(View v) {
double value;
NumberFormat myMileFormat = new DecimalFormat("0.00");
NumberFormat myMeterFormat = new DecimalFormat("0000");
String stringEmptyCheck = edit_distance.getText().toString();
switch (v.getId()) {
case R.id.button_minusDis:
decrementLength();
break;
case R.id.button_plusDis:
incrementLength();
break;
case R.id.button_done:
this.finish();
break;
case R.id.radio_miles:
if (stringEmptyCheck.matches("")) {
Toast.makeText(getApplicationContext(),
"Miles or meters cannot be empty", Toast.LENGTH_LONG)
.show();
value = 3.50;
edit_distance.setText(myMileFormat.format(value));
} else {
value = Double.parseDouble(edit_distance.getText().toString());
if ((value /= 1609.00) > DistanceInterval.MAX_LENGTH_MILES) {
value = DistanceInterval.MAX_LENGTH_MILES;
}
edit_distance.setText(myMileFormat.format(value));
}
break;
Si le bouton radio est déjà coché, ajoutez une logique pour détecter si elle a déjà été cochée et ne pas recalculer si c'est le cas. Un événement onClick se déclenche à chaque fois que l'utilisateur clique dessus, et pas seulement si le bouton radio n'est pas coché. –
Je comprends la logique de vérifier si quelque chose a été vérifiée en utilisant if (radio_miles.isChecked()) mais comment vérifier si on clique de nouveau dessus sans arrêter le premier tour initial? Où suggérez-vous de mettre la déclaration logique? – John