NumberFormatException Android Java

我是编码的新手,如果这真的很明显,我深表歉意。我已经搜索了异常,并且完全迷失了自己/理解了这个问题,但不知道如何解决。


下面是库存应用程序的代码,下面是用户输入要添加到数据库的项目信息的活动。我相信问题可能发生在'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,但我不知道如何解决。再次,我为自己的知识不足而表示歉意,我想这确实很明显,但是在过去的两个星期中,我的大脑一直在从事该项目。


我已经将整个文件包含在上下文中,以防万一我错了并且错过了其他内容。


潇潇雨雨
浏览 149回答 2
2回答

呼啦一阵风

这意味着您尝试将空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);    }}

长风秋雁

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之后
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java