在我的代码中,如果用户按两次单选按钮,它将计算两次值。我怎么能阻止这个?我在onClick中使用switch语句。
@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;
答案 0 :(得分:1)
使用布尔值检查按钮是否已被按下一次,如果已经按下,则不再计算计算(通过将布尔值设置为true)。一旦计算完成,并且在用户按下按钮之前想要发生的任何事情,您可以将该布尔值设置回false。您只需要一个简单的if语句和一个布尔变量。