将字符串解析为int时出错

时间:2015-12-14 20:08:58

标签: java android

我生成2个随机值,在EditText中你需要输入添加这两个值的结果,当我想要解析我从edittext获得的内容时,它会使我的应用程序崩溃

public class Main2Activity extends AppCompatActivity {

public int wynik;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main2);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    setContentView(R.layout.activity_main2);
    TextView text = (TextView) findViewById(R.id.txtv);

    Random r = new Random();
    int i1 = (r.nextInt(100 - 1) + 1);
    int i2 = (r.nextInt(100 - 1) + 1);
    text.setText(i1 +" + " + i2 + " = ");
    wynik =i1+i2;
};
    public void backtomain(View view)
    {
        EditText editText = (EditText) findViewById(R.id.edittext);
        String etstring =editText.getText().toString();
        Integer etint = Integer.parseInt(etstring); <---------------- CRASH CUZ OF THIS LINE

        //if(etint==wynik)
        //{
            Intent intent = new Intent(this, AalarmActivity.class);
            intent.putExtra("toggleBtn", true);
            startActivity(intent);
            finish();
        //}
        //else
        //{
        //    Toast.makeText(this, "Error ",
        //            Toast.LENGTH_LONG).show();
        //}
    }
}

注释行未完成首先需要修复该解析部分。

1 个答案:

答案 0 :(得分:3)

您可能正在接收不是数字的输入。

您可以强制将输入类型用作mumber,在XML中修改EditText并包含此属性:

android:inputType="number" 

这将强制用户仅输入数字,而Integer.parseInt(etstring);应该解析数字而不会出现格式异常。