我正在学习 Android 应用开发,我的代码有一个小问题。在我正在使用的谷歌教程中,我们创建了一个咖啡订购应用程序。我为我的加号和减号按钮做了一些额外的编码,因为我希望它们在更改订购的杯子数量时更新价格。效果很好,当我按下按钮时,杯数和总价同时更新。
现在我的问题来了。我想输出一个带有“Total:”+ totalPrice 的字符串,但这不起作用,我发现了原因。
public void addCups(View view) {
numberOfCups = numberOfCups + 1;
display(numberOfCups);
displayMessage(gBetrag + endPreis);
}
这是我的全局变量:
int numberOfCups = 0;
int priceOfCup = 5;
String message = "Vielen Dank!";
String gBetrag = "Gesamt: ";
String endPreis = NumberFormat.getCurrencyInstance().format(numberOfCups * priceOfCup);
我在 Debug模式下运行代码,发现该方法在更新“numberOfCups”变量之前首先查找“gBetrag”和“endPreis”中的内容。 输出为“Gesamt: 0.00€”,因为 endPreis 是在 numberOfCups 获得 +1 之前计算的。如何让 java 按照编写的顺序执行代码,或者更确切地说是在变量更新后读取它?
如果将变量添加到我想在其中使用它的每个方法,我可以解决这个问题,但这只会增加更多代码,我认为这就是您使用全局变量的原因。
最佳答案
每次加杯都需要计算endPreis
:
public void addCups(View view) {
numberOfCups = numberOfCups + 1;
calculateTotal();
display(numberOfCups);
displayMessage(gBetrag + endPreis);
}
private void calculateTotal() {
endPreis = NumberFormat.getCurrencyInstance().format(numberOfCups * priceOfCup);
}
关于java - 如何先更新变量然后在java中执行其余代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39047126/