转换为Integer时的Android app FC

时间:2013-07-22 19:40:30

标签: android forceclose parseint

我有一个Android应用程序,它有一些edittext框。我需要转换其中一个edittext框值以用于计算。我有以下代码:

final EditText taken = (EditText)findViewById(R.id.editText1);
String no=taken.getText().toString();
int no2=Integer.parseInt(no);

出于某种原因,每次我在手机上运行应用程序(JB 4.2.2),它都是FC,但如果我注释掉代码我的应用程序工作正常。知道我错过了什么吗?

<EditText
    android:id="@+id/editText1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignTop="@+id/textView1"
    android:layout_toRightOf="@+id/textView1"
    android:ems="10"
    android:inputType="number" >
    <requestFocus />
</EditText>

2 个答案:

答案 0 :(得分:1)

请发布logcat的输出。 可能在您的EditText中没有数字(其他符号)时会发生这种情况。 你可以尝试这样的事情:

        int no2;
        try {
            no2=Integer.parseInt(no);
        } catch (NumberFormatException nfe) {
            no2=0; //default value. Ya can trigger some event here
        }

答案 1 :(得分:1)

您需要对句柄错误使用try ... catch异常。