java - 如何使用纯文本获取输入?
问题描述
firstNumber
并且secondNumber
是 EditText 类型。我试图从firstNumber
and获取值secondNumber
并将它们转换为 type float
,但是当我这样做时,我得到一个 Exception java.lang.NumberFormatException
,我无法找到问题的解决方案。请帮忙。
这是代码
firstNumber = (EditText)findViewById(R.id.firstNumber);
secondNumber = (EditText)findViewById(R.id.secondNumber);
result = (TextView)findViewById(R.id.result);
s1 = firstNumber.getText().toString();
s2 = secondNumber.getText().toString();
num1 = Float.parseFloat(s1);
num2 = Float.parseFloat(s2);
我得到的 Logcat 是-
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.calcmpttos, PID: 17846
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.calcmpttos/com.example.calcmpttos.MainActivity}: java.lang.NumberFormatException: For input string: "Enter First Number"
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2913)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6669)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
Caused by: java.lang.NumberFormatException: For input string: "Enter First Number"
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2043)
at sun.misc.FloatingDecimal.parseFloat(FloatingDecimal.java:122)
at java.lang.Float.parseFloat(Float.java:451)
at com.example.calcmpttos.MainActivity.onCreate(MainActivity.java:39)
at android.app.Activity.performCreate(Activity.java:7136)
at android.app.Activity.performCreate(Activity.java:7127)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2893)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6669)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
2019-07-07 20:29:53.693 17846-17846/com.example.calcmpttos I/Process: Sending signal. PID: 17846 SIG: 9
解决方案
你不能只抛出一个不包含可解析浮点数的字符串来解析浮点数并期望它解析它,这就是你得到 NumberFormatException 的原因。
推荐阅读
- sql - 我将 json 文件插入到我的表中,但是我如何将日期也放入我的表中?
- bash - 如何改进这个 bash 脚本?
- javascript - 带有来自 csv 的值的直方图
- c# - 在 C# 中访问 DataTable 的给定单元格
- laravel - 雄辩的 Laravel 嵌套在 where 或 for 2 之间
- django - Django REST Framework 在序列化程序中创建外键对象
- c# - 另一个 GameObject 背后的粒子系统渲染
- integration - Dialogflow 多语言集成
- javascript - 符号与数字文字的性能?
- javascript - 使用 Azure AD 身份验证库(角度 5 中的 ADAL)获取 Id_token,但如何从 Id_token 获取访问令牌?