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

安卓计算器App回退键异常:StringBuilder未同步更新存储数值问题

问题根因

  • 回退方法只修改了展示用的TextView文本,没有同步更新存储真实计算值的strNumber变量,后续计算读取的是strNumber的旧值,所以结果和展示不符。
  • 原回退方法的边界逻辑错误,调用清空方法做截断的逻辑完全不符合回退功能的要求。

修复方案

直接修改btnClickedBack方法,优先操作真实存储的strNumber变量,再同步更新界面展示:

private fun btnClickedBack() {
    if (strNumber.length > 1) {
        // 删除真实存储值的最后一位
        strNumber.deleteCharAt(strNumber.lastIndex)
        // 同步更新界面展示
        tvDisplay.text = strNumber.toString()
    } else {
        // 只剩1位时点击回退,直接重置为初始状态
        btnClickedClear()
    }
}

补充说明

如果你的btnClickedClear方法尚未实现完整的重置逻辑,需要补充该方法的实现:

private fun btnClickedClear() {
    strNumber.clear()
    strNumber.append("0")
    tvDisplay.text = strNumber
    operator = Operator.NONE
    isOperatorClicked = true
    no1 = 0.0
}

内容的提问来源于stack exchange,提问作者Toké

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 17:15:04