为了账号安全,请及时绑定邮箱和手机立即绑定

NumberFormatException Android Java

NumberFormatException Android Java

潇潇雨雨 2021-05-13 18:13:13
我是编码的新手,如果这真的很明显,我深表歉意。我已经搜索了异常,并且完全迷失了自己/理解了这个问题,但不知道如何解决。下面是库存应用程序的代码,下面是用户输入要添加到数据库的项目信息的活动。我相信问题可能发生在'saveItemCheck'方法中。saveItemCheck方法应确保用户已在必填字段中输入了信息,并且如果未显示提示信息,则该应用程序将停止并显示logcat详细信息;java.lang.NumberFormatException: empty String        at java.lang.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1071)        at java.lang.Float.parseFloat(Float.java:459)        at com.example.android.inventoryapp.EditorActivity.saveItemCheck(EditorActivity.java:97)因此,据此,我知道问题在于它不喜欢Float,并且如果代码距离不远,则可能不喜欢int,但我不知道如何解决。再次,我为自己的知识不足而表示歉意,我想这确实很明显,但是在过去的两个星期中,我的大脑一直在从事该项目。我已经将整个文件包含在上下文中,以防万一我错了并且错过了其他内容。
查看完整描述

2 回答

?
呼啦一阵风

TA贡献1802条经验 获得超6个赞

这意味着您尝试将空String强制转换为浮点数。

也许在这里: Float price = Float.parseFloat(priceString);


因此改写为:


private void saveItemCheck() {

    String nameString = mNameEditText.getText().toString().trim();

    String priceString = mPriceEditText.getText().toString().trim();

    String quantityString = mQuantityEditText.getText().toString().trim();

    String supplierString = mSupplierEditText.getText().toString().trim();

    String supplierNumberString = mSupplierNumberEditText.getText().toString().trim();


    if (mCurrentInventoryUri == null &&

            TextUtils.isEmpty(nameString) && TextUtils.isEmpty(priceString) &&

            TextUtils.isEmpty(quantityString) && TextUtils.isEmpty(supplierString) &&

            TextUtils.isEmpty(supplierNumberString)) {

        return;

    }

    if (TextUtils.isEmpty(nameString) || TextUtils.isEmpty(priceString)

            || TextUtils.isEmpty(quantityString) || TextUtils.isEmpty(supplierString)

            || TextUtils.isEmpty(supplierNumberString)) {

        Toast.makeText(this, "Please fill all the starred fields to save the product",

                Toast.LENGTH_LONG).show();

    } else {

        Float price = Float.parseFloat(priceString);

        int quantity = Integer.parseInt(quantityString);

        saveItem(nameString, price, quantity, supplierString, supplierNumberString);

    }

}



查看完整回答
反对 回复 2021-05-19
?
长风秋雁

TA贡献1757条经验 获得超7个赞

String priceString = mPriceEditText.getText().toString().trim();

if(!TextUtils.isEmpty(priceString))

    Float price = Float.parseFloat(priceString);


String quantityString = mQuantityEditText.getText().toString().trim();

if(!TextUtils.isEmpty(quantityString))

    int quantity = Integer.parseInt(quantityString);

您必须检查edittext是否为空,而不是转换为float的int之后


查看完整回答
反对 回复 2021-05-19
  • 2 回答
  • 0 关注
  • 148 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信