java - 如何先更新变量然后在java中执行其余代码

标签 java android

我正在学习 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/

相关文章:

java - 如何将别名添加到 Android (Java) Keystore

android - 找不到 gradle 3.1

java - 当点击回收器 View 中的 +/- 按钮时,处理学生考勤管理器应用程序会崩溃

java - 没有显示输出,找不到错误(Java)

java - 如何读取打开的文件并在 Eclipse Master Details block 中显示内容?

java - Android 9.0 设备上的 NumberFormatException,无法找到问题原因

java - 直接从 PHP 中的方法调用中获取数组中的元素

java - 我的无锁链表实现在 toString() 上始终返回一个空字符串

android - 我怎样才能将项目从 eclipse 导入到 android studio

java - Android - 带有 OnClickListener 的可滚动 TextView