如何使SetOnClickListener仅在其EditText与零不同时发生

时间:2013-12-02 07:48:12

标签: android null onclicklistener

我想制作一个计算器,使用Add按钮获取2个不同的EditText并添加它们,在Toast上显示。但是当我直接点击按钮而没有输入任何值时,应用程序崩溃了。我很高兴听到解决方案。我尝试使用if与null进行比较。这是代码:

if(num1 != null && num2 != null){

    som.setOnClickListener(         
        new View.OnClickListener(){

        @Override
        public void onClick(View v){


            Double valor1 = Double.parseDouble(num1.getText().toString());
            Double valor2 = Double.parseDouble(num2.getText().toString());

            Double Soma = valor1+valor2;

            Toast.makeText(MainActivity.this,"A soma é: "+Soma, Toast.LENGTH_LONG).show();


                                    }
    });
}

5 个答案:

答案 0 :(得分:1)

if(! num1 .getEditableText().toString().matches("") && !num2 .getEditableText().toString().matches(""))放入onClick方法

答案 1 :(得分:0)

你应该使用num1.getText()。toString()!= null no num1!= null你应该从数字类型设置edittext的inputtype

答案 2 :(得分:0)

试试这个,

if(num1 != null && num2 != null){

    som.setOnClickListener(         
        new View.OnClickListener(){

        @Override
        public void onClick(View v){                        
            Double valor1=0;
            Double valor2=0;
            if(!num1.getText().toString().equals(""))
              valor1 = Double.parseDouble(num1.getText().toString());
            if(!num2.getText().toString().equals(""))
              valor2= Double.parseDouble(num2.getText().toString());

            Double Soma = valor1+valor2;

            Toast.makeText(MainActivity.this,"A soma é: "+Soma, Toast.LENGTH_LONG).show();


                                    }
    });
}

答案 3 :(得分:0)

而不是检查editText是否为null

if(num1 != null && num2 != null){

你应该检查你将从editTexts获得的值。

if (num1.getText().toString() != null && !num1.getText().toString().equals("")&&
  num2.getText().toString() != null && !num2.getText().toString().equals(""))) {
 som.setOnClickListener(         
        new View.OnClickListener(){

        @Override
        public void onClick(View v){


            Double valor1 = Double.parseDouble(num1.getText().toString());
            Double valor2 = Double.parseDouble(num2.getText().toString());

            Double Soma = valor1+valor2;

            Toast.makeText(MainActivity.this,"A soma é: "+Soma, Toast.LENGTH_LONG).show();


                                    }
    });
}

答案 4 :(得分:0)

如果条件如此

if(num1 != "" && num2 != ""){
}

让我知道它是否有助于你