检查EditText是否为空会导致应用程序崩溃

时间:2012-03-10 03:32:19

标签: java android if-statement textview

我正在尝试使用eclipse和android sdk(java)创建一个简单的Android应用程序我有一个带有一些限制的EditText框但是当EditText框为空时它崩溃我已经尝试了很多方法来检查EditText如果它空的但它确实想要工作..我的代码在下面为什么它总是崩溃当盒子是空的它应该是简单的没有?

buttonHash.setOnClickListener(new View.OnClickListener(){

    public void onClick(View v){
        switch(v.getId()){
        case R.id.hash_button:
        TextView msg = (TextView)findViewById(R.id.tell);
        info = (EditText)findViewById(R.id.entry);
        anss = info.getText().toString();
        //String ans = Double.toString(res);
        double result = Double.parseDouble(anss);
        if (res == result){
        msg.setText("Correct");
        }else
        if (res != result){
            msg.setText("Incorrect");
            }else
        if (info.getText().toString().equals("")){
            msg.setText("Empty!");
            }
        }       
    }
});

5 个答案:

答案 0 :(得分:0)

首先检查info.getText()是否为空

if (info.getText() == null || "".equals(info.getText().toString())){ 
            msg.setText("Empty!"); 
            }

答案 1 :(得分:0)

请注意异常可能在这里,异常是NumberFormatException,因为你试图从“”解析double。

anss = info.getText().toString();
        //String ans = Double.toString(res);
        double result = Double.parseDouble(anss);

请执行以下操作以避免此问题:

double result = 0;

try{

    result = Double.parseDouble(anss);

}catch(NumberFormatException ex)
{
}

答案 2 :(得分:0)

您可以使用此代码解决问题。

    public void onClick(View v) {
            if (_text.getText().toString().equals(""))
                Toast.makeText(getApplicationContext(), "Empty BOX", 5000).show();
            else
                Toast.makeText(getApplicationContext(), _text.getText().toString(), 5000).show();

        }

多数民众赞成......尝试一下......它会起作用。

答案 3 :(得分:0)

试试这个我刚刚添加了一个警告窗口

public void onClick(View v){                 if(_text.getText()。toString()。equals(“”)){

                   AlertDialog.Builder builder = new AlertDialog.Builder(this);
            builder.setMessage("Text is empty");
            builder.setCancelable(true);
            builder.setPositiveButton("OK",
                    new DialogInterface.OnClickListener() {

                        @Override
                        public void onClick(DialogInterface dialog, int id) {
                            // TODO Auto-generated method stub
                            dialog.cancel();
                        }
                    });
            builder.create().show();

            }

            else
                Toast.makeText(getApplicationContext(), _text.getText().toString(), 5000).show();

        }

答案 4 :(得分:0)

EditText值永远不会为null ..

以下列方式使用它:

if ((info.getText().toString().trim().getLength() == 0) && ("").equals(info.getText().toString().trim())){
            msg.setText("Empty!");
            }
        }