我正在做一些计算,但无法将字符串解析为int甚至是float.我寻找解决方案,并且在某个必须有空字符串的地方读取了它,但是我使用
log.v("Valuee",e1.getText().toString());
并且其打印的值证明该字符串不为空.
我想念什么?
这是logcat
@H_403_16@java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.farrukh.bmi/com.example.farrukh.bmi.Main2Activity}: java.lang.NumberFormatException: InvalID int: “”
at androID.app.ActivityThread.performlaunchActivity(ActivityThread.java:2195)
at androID.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
at androID.app.ActivityThread.access$800(ActivityThread.java:135)
at androID.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
at androID.os.Handler.dispatchMessage(Handler.java:102)
at androID.os.Looper.loop(Looper.java:136)
at androID.app.ActivityThread.main(ActivityThread.java:5017)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.androID.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
at com.androID.internal.os.ZygoteInit.main(ZygoteInit.java:595)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NumberFormatException: InvalID int: “”
at java.lang.Integer.invalIDInt(Integer.java:137)
at java.lang.Integer.parseInt(Integer.java:358)
at java.lang.Integer.parseInt(Integer.java:331)
at com.example.farrukh.bmi.Main2Activity.onCreate(Main2Activity.java:31)
at androID.app.Activity.performCreate(Activity.java:5231)
at androID.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
at androID.app.ActivityThread.performlaunchActivity(ActivityThread.java:2159)
at androID.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
at androID.app.ActivityThread.access$800(ActivityThread.java:135)
at androID.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
at androID.os.Handler.dispatchMessage(Handler.java:102)
at androID.os.Looper.loop(Looper.java:136)
at androID.app.ActivityThread.main(ActivityThread.java:5017)
at java.lang.reflect.Method.invokeNative(Native Method)
这是MainActivity.java
public class Main2Activity extends AppCompatActivity { @OverrIDe protected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.activity_main2); final button b = (button) findVIEwByID(R.ID.button); final EditText e1 = (EditText) findVIEwByID(R.ID.editText2); final TextVIEw text = (TextVIEw) findVIEwByID(R.ID.textVIEw4); final String height = e1.getText().toString(); final int a = Integer.parseInt(height); //got error while parsing b.setonClickListener(new VIEw.OnClickListener() { @OverrIDe public voID onClick(VIEw v) { // Log.v("EditText",e1.getText().toString()); } }); } }
这是activity.xml
<button androID:layout_wIDth="132dp" androID:layout_height="wrap_content" androID:layout_margintop="50dp" androID:layout_gravity="center_horizontal" androID:text="CliCK" androID:clickable="true" androID:ID="@+ID/button"/><EditText androID:layout_wIDth="120dp" androID:layout_height="wrap_content" androID:inputType="number" androID:ems="10" androID:ID="@+ID/editText2" androID:layout_gravity="center_horizontal" androID:layout_margintop="20dp" androID:gravity="center" /> <TextVIEw androID:layout_wIDth="match_parent" androID:layout_height="wrap_content" androID:textAppearance="?androID:attr/textAppearanceLarge" androID:ID="@+ID/textVIEw4" androID:layout_gravity="center_horizontal" androID:gravity="center" androID:layout_margintop="20dp" androID:textcolor="#3b9ff0" />
解决方法:
将这些行放在onClick()中
final String height = e1.getText().toString();final int a = Integer.parseInt(height);
您正在onCreate()中获取e1的值,而在用户单击按钮时需要它
还需要检查高度是否具有任何值,为此检查Stuluske’s答案
总结以上是内存溢出为你收集整理的java.lang.NumberFormatException:无效的int:“”:错误全部内容,希望文章能够帮你解决java.lang.NumberFormatException:无效的int:“”:错误所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)