我正在爲學校創建一個咖啡訂購應用程序。我對下面代碼的意圖是根據是否單擊subtractCoffeeButton或addCoffeeButton來增加或減少咖啡整數。 coffeeTV用於向用戶顯示排隊等待排列的咖啡數量。小計和小計電視用於保存價格並將其顯示給用戶。開關語句只增加一次
實際上,subtractCoffee和addCoffee按鈕用於將咖啡和咖啡電視從0增加到1,反之亦然,小計和小計電視也適用於顯示0.00和2.5,但不會增加比這更大的值。當預計將咖啡增加到2,3,4等時,進一步按鈕點擊不會導致任何事情發生。小計爲5.00,7.50,10.00等。
代碼:
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_relative);
Button subtractCoffee = (Button) findViewById(R.id.subtractCoffeeButton);
subtractCoffee.setOnClickListener(this);
Button addCoffee = (Button) findViewById(R.id.addCoffeeButton);
addCoffee.setOnClickListener(this);
}
@Override
public void onClick(View v) {
double subtotal = 0.00;
int coffee = 0;
double coffeePrice = 2.50;
TextView coffeeTV = (TextView) findViewById(R.id.tvCoffeeOrder);
String coffeeString = coffeeTV.getText().toString();
int coffeeTracker = Integer.parseInt(coffeeString);
TextView subTotalTV = (TextView) findViewById(R.id.tvSubtotalCost);
switch (v.getId()) {
case R.id.subtractCoffeeButton:
if (coffeeTracker == 0) {
break;
} else if (coffeeTracker == 1) {
coffee = 0;
coffeeTracker = 0;
coffeeTV.setText(Integer.toString(coffee));
break;
} else {
coffee = coffee - 1;
coffeeTV.setText(Integer.toString(coffee));
subtotal = subtotal - coffeePrice;
subTotalTV.setText(Double.toString(subtotal));
}
break;
case R.id.addCoffeeButton:
coffee += 1;
coffeeTracker+=1;
coffeeTV.setText(Integer.toString(coffee));
subtotal = subtotal + coffeePrice;
subTotalTV.setText(Double.toString(subtotal));
break;
}
}
因爲每次調用'onclick','int coffee = 0'都將咖啡設置爲0. – sam