You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Studio条件判断失效:点击Update按钮Toast异常显示维护提示

问题根源与修复方案

你的代码始终触发Call Maintenance的核心问题是条件判断的语法完全错误,尤其是正则表达式的用法和数值范围的判断逻辑:

1. 错误点拆解

  • 正则[0000-9999]、[1500-3000]是字符集语法,不是数值范围匹配。比如[1500-3000]实际只会匹配单个字符:1、5、0、3,完全达不到你想要的“匹配1500到3000之间的数”的效果。
  • 直接用字符串匹配数值区间本身就不合理,输入的小时、燃油值都是数值,应该转成整数后再做范围判断,既准确又避免正则的坑。

2. 修复后的代码

btnUpdateTractor.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        // 先获取输入内容并去除首尾空格
        String hoursStr = hoursEdit.getText().toString().trim();
        String oilStr = oilEdit.getText().toString().trim();
        String fuelStr = fuelEdit.getText().toString().trim();

        // 执行数据库更新
        dbHandler.updateTractor(tractor, tractorEdit.getText().toString(), hoursStr, oilStr, fuelStr);

        // 转换输入为数值,捕获非数字输入的异常
        int hours = -1;
        int fuel = -1;
        try {
            hours = Integer.parseInt(hoursStr);
            fuel = Integer.parseInt(fuelStr);
        } catch (NumberFormatException e) {
            // 输入不是有效数字,直接触发维护提示
            Toast.makeText(user.this, "Call Maintenance", Toast.LENGTH_SHORT).show();
            return;
        }

        // 修正后的条件判断逻辑
        if (hours >= 0 && hours <= 9999 && oilStr.equals("Good") && fuel >= 1500 && fuel <= 3000) {
            Toast.makeText(user.this, "Tractor Updated", Toast.LENGTH_SHORT).show();
            Intent i = new Intent(user.this, user.class);
            startActivity(i);
        } else if (hours >= 0 && hours <= 9999 && oilStr.equals("Low") && fuel >= 500 && fuel <= 1000) {
            Toast.makeText(user.this, "Add Oil and Fuel", Toast.LENGTH_SHORT).show();
            Intent i = new Intent(user.this, user.class);
            startActivity(i);
        } else {
            Toast.makeText(user.this, "Call Maintenance", Toast.LENGTH_SHORT).show();
        }
    }
});

3. 关键优化点

  • 用trim()处理输入字符串,避免用户误输入空格导致匹配失败。
  • 数值转换时添加异常捕获,防止非数字输入引发崩溃。
  • 用>=、<=直接判断数值区间,逻辑清晰且准确,彻底替代错误的正则用法。
  • 提前拦截无效数值输入,减少后续无效判断逻辑。

内容的提问来源于stack exchange,提问作者rob seper

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 10:53:08