当 EditText 为 Empty 或 null 时应用程序崩溃 - 如何解决它

Posted

技术标签:

【中文标题】当 EditText 为 Empty 或 null 时应用程序崩溃 - 如何解决它【英文标题】:App crashes when EditText is Empty or null - how to solve it 【发布时间】:2021-09-01 09:38:48 【问题描述】:
@Override
protected void onCreate(Bundle savedInstanceState) 
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    button = findViewById(R.id.button);
    textView4 = findViewById(R.id.textView4);
    editTextNumberDecimal2 = findViewById(R.id.editTextNumberDecimal2);
    editTextNumberDecimal3 = findViewById(R.id.editTextNumberDecimal3);
    button.setOnClickListener(new View.OnClickListener() 
        @Override
        public void onClick(View v) 
            String s = editTextNumberDecimal2.getText().toString();
            int kg = Integer.parseInt(s);
            double pound = kg;
            String k = editTextNumberDecimal3.getText().toString();
            int cms = Integer.parseInt(k);
            double ft = cms;
            double bmi = (pound / ft / ft) * 10000;

            if (bmi < 18.5) 
                textView4.setText("Thin - Eat something");
            
            else if (bmi < 25) 
                textView4.setText("Fit - Keep it up");
            
            else if (bmi < 30) 
                textView4.setText("Fat - Go on a diet");
            
            else 
                textView4.setText("Very fat - Stop eating");
            
        
    );

..................................................... ..................................................... ..................................................... ..................................................... ..................................................... ..................................................... ..................................................... ..................................................... ......................忽略这些点...................... ..................................................... ......................................

【问题讨论】:

查看错误日志..在 google 上搜索错误...并阅读错误“我们何时以及为什么收到该错误?..eg- nullPointerException 在您的情况下可能..跨度> 【参考方案1】:

您不能将空字符串解析为整数。所以先检查它是否为空。

public void onClick(View v) 
    String s = editTextNumberDecimal2.getText().toString();
    if(s.isEmpty()) return;
    int kg = Integer.parseInt(s);
    double pound = kg;
    String k = editTextNumberDecimal3.getText().toString();
    if(k.isEmpty()) return;
    int cms = Integer.parseInt(k);
    // ...

【讨论】:

以上是关于当 EditText 为 Empty 或 null 时应用程序崩溃 - 如何解决它的主要内容,如果未能解决你的问题,请参考以下文章

将 JSON 对象传递给 MVC 控制器时 string.empty 转换为 null

android databinding啥时候会是null

如何在 Laravel 控制器中使用 null 或 empty?

php--每天积累02

empty_data:无法反转属性路径“countryOfOrigin”的值:应为字符串或 null

php 中 ?? 和 empty 的 区别