Int 崩溃我的应用程序
Int crash my app
我想知道下面这行是否有问题?
int b1 = Integer.valueOf(selection.getText().toString());
int b12 = (b1*100);
result.setText(Integer.toString(b12));
我已经将线隔离到下面的线:
int b1 = Integer.valueOf(selection.getText().toString());
我打算使用 b1 int 值做一个简单的数学运算,如下所示:
int b12 = (b1*100);
然后将值输出到 TextView
名称结果
result.setText(Integer.toString(b12));
我找到了一些答案并在 Whosebug 中尝试但没看到
帮助。有哪位好心人能赐教吗?
下面是我更改 K Neeraj Lal 给出的代码后的日志
05-26 23:11:29.542: E/AndroidRuntime(7862): FATAL EXCEPTION: main
05-26 23:11:29.542: E/AndroidRuntime(7862): Process: com.lockon.smdresistor2, PID: 7862
05-26 23:11:29.542: E/AndroidRuntime(7862): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.lockon.smdresistor2/com.lockon.smdresistor2.MainActivity}: java.lang.NumberFormatException: Invalid int: "TextView"
05-26 23:11:29.542: E/AndroidRuntime(7862): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2215)
05-26 23:11:29.542: E/AndroidRuntime(7862): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2264)
05-26 23:11:29.542: E/AndroidRuntime(7862): at android.app.ActivityThread.access0(ActivityThread.java:144)
05-26 23:11:29.542: E/AndroidRuntime(7862): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1205)
05-26 23:11:29.542: E/AndroidRuntime(7862): at android.os.Handler.dispatchMessage(Handler.java:102)
05-26 23:11:29.542: E/AndroidRuntime(7862): at android.os.Looper.loop(Looper.java:136)
05-26 23:11:29.542: E/AndroidRuntime(7862): at android.app.ActivityThread.main(ActivityThread.java:5139)
05-26 23:11:29.542: E/AndroidRuntime(7862): at java.lang.reflect.Method.invokeNative(Native Method)
05-26 23:11:29.542: E/AndroidRuntime(7862): at java.lang.reflect.Method.invoke(Method.java:515)
05-26 23:11:29.542: E/AndroidRuntime(7862): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:796)
05-26 23:11:29.542: E/AndroidRuntime(7862): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:612)
05-26 23:11:29.542: E/AndroidRuntime(7862): at dalvik.system.NativeStart.main(Native Method)
05-26 23:11:29.542: E/AndroidRuntime(7862): Caused by: java.lang.NumberFormatException: Invalid int: "TextView"
05-26 23:11:29.542: E/AndroidRuntime(7862): at java.lang.Integer.invalidInt(Integer.java:137)
05-26 23:11:29.542: E/AndroidRuntime(7862): at java.lang.Integer.parse(Integer.java:374)
05-26 23:11:29.542: E/AndroidRuntime(7862): at java.lang.Integer.parseInt(Integer.java:365)
05-26 23:11:29.542: E/AndroidRuntime(7862): at java.lang.Integer.parseInt(Integer.java:331)
05-26 23:11:29.542: E/AndroidRuntime(7862): at java.lang.Integer.valueOf(Integer.java:489)
05-26 23:11:29.542: E/AndroidRuntime(7862): at com.lockon.smdresistor2.MainActivity.onCreate(MainActivity.java:52)
05-26 23:11:29.542: E/AndroidRuntime(7862): at android.app.Activity.performCreate(Activity.java:5231)
05-26 23:11:29.542: E/AndroidRuntime(7862): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
05-26 23:11:29.542: E/AndroidRuntime(7862): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2169)
05-26 23:11:29.542: E/AndroidRuntime(7862): ... 11 more
K Neeraj Lah 和伙计们也许这会有所帮助
selection=(TextView)findViewById(R.id.text0);
Spinner spin=(Spinner)findViewById(R.id.spinner0);
result=(TextView)findViewById(R.id.result);
spin.setOnItemSelectedListener(this);
ArrayAdapter<String> aa=new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, items);
aa.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spin.setAdapter(aa);
试试这个,
try{
String text = selection.getText().toString();
int b1 = 0;
if(!text.equals("") || isIntegerParseInt(text)){
b1 = Integer.valueOf();
int b12 = (b1*100);
result.setText(Integer.toString(b12));
} else {
Toast.makeText(getApplicationContext(), "please input a number!", Toast.LENGTH_SHORT);
}
} catch(Exception e) {
e.printStackTrace();
Toast.makeText(getApplicationContext(), e.getMessage(), Toast.LENGTH_SHORT);
}
....
public static boolean isIntegerParseInt(String str) {
try {
Integer.parseInt(str);
return true;
} catch (NumberFormatException nfe) {}
return false;
}
如果您确定在 Selection Textview 中获取的是 int 值,您可以试试这个:
int b1 = Integer.parseInt(selection.getText().toString());
int b12 = b1 * 100;
result.setText(String.valueOf(b12));
有两种方式
result.setText(String.valueOf(b12));
和
result.setText(b12 + "");
我在 R 文件中看到的问题是选择文本视图有一些错误,所以我对我的项目进行了清理并删除了 R 并再次重新创建 R 文件
我想知道下面这行是否有问题?
int b1 = Integer.valueOf(selection.getText().toString());
int b12 = (b1*100);
result.setText(Integer.toString(b12));
我已经将线隔离到下面的线:
int b1 = Integer.valueOf(selection.getText().toString());
我打算使用 b1 int 值做一个简单的数学运算,如下所示:
int b12 = (b1*100);
然后将值输出到 TextView
名称结果
result.setText(Integer.toString(b12));
我找到了一些答案并在 Whosebug 中尝试但没看到 帮助。有哪位好心人能赐教吗?
下面是我更改 K Neeraj Lal 给出的代码后的日志
05-26 23:11:29.542: E/AndroidRuntime(7862): FATAL EXCEPTION: main
05-26 23:11:29.542: E/AndroidRuntime(7862): Process: com.lockon.smdresistor2, PID: 7862
05-26 23:11:29.542: E/AndroidRuntime(7862): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.lockon.smdresistor2/com.lockon.smdresistor2.MainActivity}: java.lang.NumberFormatException: Invalid int: "TextView"
05-26 23:11:29.542: E/AndroidRuntime(7862): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2215)
05-26 23:11:29.542: E/AndroidRuntime(7862): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2264)
05-26 23:11:29.542: E/AndroidRuntime(7862): at android.app.ActivityThread.access0(ActivityThread.java:144)
05-26 23:11:29.542: E/AndroidRuntime(7862): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1205)
05-26 23:11:29.542: E/AndroidRuntime(7862): at android.os.Handler.dispatchMessage(Handler.java:102)
05-26 23:11:29.542: E/AndroidRuntime(7862): at android.os.Looper.loop(Looper.java:136)
05-26 23:11:29.542: E/AndroidRuntime(7862): at android.app.ActivityThread.main(ActivityThread.java:5139)
05-26 23:11:29.542: E/AndroidRuntime(7862): at java.lang.reflect.Method.invokeNative(Native Method)
05-26 23:11:29.542: E/AndroidRuntime(7862): at java.lang.reflect.Method.invoke(Method.java:515)
05-26 23:11:29.542: E/AndroidRuntime(7862): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:796)
05-26 23:11:29.542: E/AndroidRuntime(7862): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:612)
05-26 23:11:29.542: E/AndroidRuntime(7862): at dalvik.system.NativeStart.main(Native Method)
05-26 23:11:29.542: E/AndroidRuntime(7862): Caused by: java.lang.NumberFormatException: Invalid int: "TextView"
05-26 23:11:29.542: E/AndroidRuntime(7862): at java.lang.Integer.invalidInt(Integer.java:137)
05-26 23:11:29.542: E/AndroidRuntime(7862): at java.lang.Integer.parse(Integer.java:374)
05-26 23:11:29.542: E/AndroidRuntime(7862): at java.lang.Integer.parseInt(Integer.java:365)
05-26 23:11:29.542: E/AndroidRuntime(7862): at java.lang.Integer.parseInt(Integer.java:331)
05-26 23:11:29.542: E/AndroidRuntime(7862): at java.lang.Integer.valueOf(Integer.java:489)
05-26 23:11:29.542: E/AndroidRuntime(7862): at com.lockon.smdresistor2.MainActivity.onCreate(MainActivity.java:52)
05-26 23:11:29.542: E/AndroidRuntime(7862): at android.app.Activity.performCreate(Activity.java:5231)
05-26 23:11:29.542: E/AndroidRuntime(7862): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
05-26 23:11:29.542: E/AndroidRuntime(7862): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2169)
05-26 23:11:29.542: E/AndroidRuntime(7862): ... 11 more
K Neeraj Lah 和伙计们也许这会有所帮助
selection=(TextView)findViewById(R.id.text0);
Spinner spin=(Spinner)findViewById(R.id.spinner0);
result=(TextView)findViewById(R.id.result);
spin.setOnItemSelectedListener(this);
ArrayAdapter<String> aa=new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, items);
aa.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spin.setAdapter(aa);
试试这个,
try{
String text = selection.getText().toString();
int b1 = 0;
if(!text.equals("") || isIntegerParseInt(text)){
b1 = Integer.valueOf();
int b12 = (b1*100);
result.setText(Integer.toString(b12));
} else {
Toast.makeText(getApplicationContext(), "please input a number!", Toast.LENGTH_SHORT);
}
} catch(Exception e) {
e.printStackTrace();
Toast.makeText(getApplicationContext(), e.getMessage(), Toast.LENGTH_SHORT);
}
....
public static boolean isIntegerParseInt(String str) {
try {
Integer.parseInt(str);
return true;
} catch (NumberFormatException nfe) {}
return false;
}
如果您确定在 Selection Textview 中获取的是 int 值,您可以试试这个:
int b1 = Integer.parseInt(selection.getText().toString());
int b12 = b1 * 100;
result.setText(String.valueOf(b12));
有两种方式
result.setText(String.valueOf(b12));
和
result.setText(b12 + "");
我在 R 文件中看到的问题是选择文本视图有一些错误,所以我对我的项目进行了清理并删除了 R 并再次重新创建 R 文件