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

Android Kotlin薪资计算器滑动崩溃问题及类型转换咨询

问题解决:NumberFormatException崩溃修复

核心错误原因

你在calculateTax()方法中错误调用了salaryEditText.toString(),这会返回EditText控件的对象描述字符串(即日志中那串长文本),而非用户输入的薪资内容,导致转Int时抛出NumberFormatException。

修复后的代码

修改calculateTax()方法,同时增加空值和格式校验,避免后续崩溃:

private fun calculateTax(){
    // 获取输入的文本内容并去除首尾空格
    val salaryInput = salaryEditText.text.toString().trim()
    // 校验输入是否为空或非数字
    if (salaryInput.isEmpty() || !salaryInput.all { it.isDigit() }) {
        netSalaryEditText.setText("请输入有效薪资")
        return
    }
    // 转换为Int类型
    val grossSalary: Int = salaryInput.toInt()
    // 计算税后薪资(修正逻辑:税前薪资减去税费)
    val taxAmount: Float = (taxRateSlider.value / 100) * grossSalary
    val netSalary = grossSalary - taxAmount
    // 格式化显示,保留两位小数更友好
    netSalaryEditText.setText(String.format("%.2f", netSalary))
}

注意:原代码缺失闭合calculateTax()方法的},记得补上。

额外优化建议

  • 给etSalary添加android:digits="0123456789"属性,限制仅能输入数字,减少非法输入
  • 给taxSlider设置默认值taxRateSlider.value = 0F,避免初始值异常
Kotlin+Android开发学习资源

免费资源

  • Android官方开发者文档:官方出品,涵盖Kotlin语法、Android组件全知识点,覆盖入门到进阶全阶段
  • Google Codelabs:步骤式实战教程,多为Kotlin+Android项目实践,适合边做边学
  • Kotlin官方文档:系统学习Kotlin语法特性,掌握Android开发基础语言
  • YouTube Android Developers官方频道:官方发布的技术讲解、实战演示视频,内容权威直观

付费资源

  • Udemy「Android Kotlin Masterclass」:全面覆盖Android开发核心技能,项目驱动式教学
  • Coursera Google Android开发专项课程:由Google工程师授课,体系化强,适合系统学习
  • 国内极客时间Android相关专栏:针对国内开发者场景,讲解实用技巧与实战项目

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 16:45:04