Android Float.parseFloat由于小数点而导致致命错误

Android Float.parseFloat由于小数点而导致致命错误,android,Android,我使用以下代码从字符串解析浮点: EditText CurrPLC = (EditText) findViewById(R.id.CurrPLC); String s5 = CurrPLC.getText().toString(); float F5 = Float.parseFloat(s5); 这非常有效,直到我尝试将负值写入EditText。因为“负”符号与小数点位于同一按钮上,所以我先写一个小数点,然后应用程序崩溃,因为“.”字符串无法解析为浮点值。在EditText 以下是布局

我使用以下代码从字符串解析浮点:

 EditText CurrPLC = (EditText) findViewById(R.id.CurrPLC);
 String s5 = CurrPLC.getText().toString();
 float F5 = Float.parseFloat(s5);
这非常有效,直到我尝试将负值写入
EditText
。因为“负”符号与小数点位于同一按钮上,所以我先写一个小数点,然后应用程序崩溃,因为“.”字符串无法解析为浮点值。在
EditText

以下是布局文件中的
EditText
代码:

 <EditText
            android:id="@+id/CurrPLC"
            android:layout_width="100dp"
            android:layout_height="30dp"
            android:padding="2dp"
            android:hint="eg. 3277"
            android:gravity="center_horizontal"
            android:layout_gravity="right"
            android:textSize="13sp"
            android:digits="-0123456789."
            android:inputType="numberSigned|numberDecimal"
            android:maxLength="10"
            android:background="@drawable/plc_edit_text_holo_light"
            android:layout_marginRight="19dp"
            android:layout_marginEnd="19dp"
            android:layout_alignBaseline="@+id/CurrPLCLabel"
            android:layout_alignBottom="@+id/CurrPLCLabel"
            android:layout_alignParentRight="true"
            android:layout_alignParentEnd="true" />
        />

/>
是我做错了什么,还是只是在错误发生之前处理好了


谢谢

根据您关于使用
TextWatcher
解析每次按键时的浮点值的评论,问题不在于负数

parseFloat()
可以处理负数。问题很可能是空字符串或
-
-.
出现的


因此,您不应该在每次按键时进行解析,而应该只在需要的地方进行解析(我不确定您的完整用例,因此我无法对解析浮点的适当时间和位置发表评论)。否则,您需要为
java.lang.NumberFormatException
添加一个
try
/
catch
,无论您当前在何处解析浮点。

根据您关于使用
TextWatcher
尝试在每次按键时解析浮点的评论,问题不在于负数

parseFloat()
可以处理负数。问题很可能是空字符串或
-
-.
出现的


因此,您不应该在每次按键时进行解析,而应该只在需要的地方进行解析(我不确定您的完整用例,因此我无法对解析浮点的适当时间和位置发表评论)。否则,您需要为
java.lang.NumberFormatException
添加一个
try
/
catch
,无论您当前在哪里解析浮点值。

您在什么时候解析浮点值?您使用的是
TextWatcher
还是按下按钮?我不明白你所说的
是什么意思,“否定”符号与小数点在同一个按钮上
@AbtinGramian是的,我使用的是
文本观察程序
,因此每次按下一个键时它都会更新。要将“负”符号(-)与小数点放在同一按钮上,必须按两次小数点按钮。这只是标准的安卓数字键盘,你在什么时候解析浮点数?您使用的是
TextWatcher
还是按下按钮?我不明白你所说的
是什么意思,“否定”符号与小数点在同一个按钮上
@AbtinGramian是的,我使用的是
文本观察程序
,因此每次按下一个键时它都会更新。要将“负”符号(-)与小数点放在同一按钮上,必须按两次小数点按钮。这只是标准的安卓数字键盘