java - 如何防止负数/负数

标签 java android android-studio

我有一个应用程序,其中有一个显示硬币 00 的 TextView ,一个按钮显示奖励视频广告,为用户提供 10 个硬币,还有一个购买按钮,将硬币减少 30 个。现在,当用户有 30 个硬币时,单击购买按钮,它将文本硬币设置为 00,但当他的硬币少于 30 个时,它将文本设置为负数(假设我有 20 个硬币,当我单击购买时,它将文本设置为 -10 )。

我想要什么

当用户点击购买按钮时,当他的硬币为 0 并且我不希望该值变为负数时,我想显示一个 toast 。

我的代码

 mText = (TextView) findViewById(R.id.money);
    coinCount = 0;
    mText.setText(" " + coinCount);
    Button button = (Button) findViewById(R.id.buynow);
    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (coinCount <= 0) {
                Toast.makeText(MainActivity.this, "You dont have enough coins", Toast.LENGTH_SHORT).show();
            } else {
                    coinCount = coinCount - 30;
                    mText.setText(String.valueOf(coinCount));
                }

        }
    });

最佳答案

只需更改条件:

if (coinCount <= 0)

if (coinCount < 30)

因为当coinCount小于30时,您不应该减去任何值。您只需通知用户没有足够的硬币。

<小时/>

我还想建议您将要减去的硬币数量存储在变量中。这样,当有一天您决定更改要减去的硬币数量时,您只能在一个地方执行此操作,而不是使用该值的整个代码。例如:

mText = (TextView) findViewById(R.id.money);
int costOfTransactionInCoins = 30; // new variable
coinCount = 0;
...
if (coinCount < costOfTransactionInCoins) {
   ... }
else {
    coinCount = coinCount - costOfTransactionInCoins;
...
}
... 

关于java - 如何防止负数/负数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50773174/

相关文章:

android-studio - IntelliJ IDEA 和 Atom 编辑器中的相同键盘映射

java - 所有本地应用程序上的 VisualVM "not supported for this JVM"?

java - java中的信号量

android - libgdx 和 TWL : Android app force closes on any TWL menu, 在桌面上运行良好

android - 每当列表发生变化时,LazyList 都会重新组合项目

Android Studio : Gradle Sync fail with support-v4-24. 1.1.jar

intellij-idea - Android Studio 代码格式化缓慢并向下滚动

java - 创建仅内容动态更改的 Wicket 页眉/页脚/内容布局

java - 使用 java/tuckey URL 重写器从 URL 中转义问号的正则表达式

android - 如何使用Android webview下载一个文本文件