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 文件