如何解决运营商的第二个条件;安卓

时间:2015-03-24 00:25:55

标签: android

下面的代码有什么问题? 当我点击一个按钮并且edittext为空时,应用程序出错,如果edittext包含零或其他数字,那就可以了......

提前致谢

public void onMyButtonClick(View view)
    {
        EditText rateet = (EditText) findViewById(R.id.rateet);
        if (rateet.getText().toString().length()==0 | Double.parseDouble(rateet.getText().toString())==0){
            Toast.makeText(getApplicationContext(),"Wrong rate!", Toast.LENGTH_SHORT).show();
            return;
        }      


    else {
        double r1=Double.parseDouble(rateet.getText().toString());
        Intent intent = new Intent(this, MainActivity.class);
        intent.putExtra("rate", r1);
        startActivity(intent);
    }
}

1 个答案:

答案 0 :(得分:1)

问题在于这个表达式:

Double.parseDouble(rateet.getText().toString())==0

当EditText为空时,返回的String是一个空String,它不是有效的double常量。在调用parseDouble()之前,您必须首先测试空字符串。

您还应该捕获NumberFormatException来处理EditText中的String不是有效数字的其他情况。