Android:如果/ Else语句使应用程序崩溃

时间:2013-06-25 12:12:32

标签: android null if-statement

我试图通过使用If / Else

来判断android int是否为null
public void onClick(View v) {



            EditText min = (EditText) findViewById(R.id.EditText01);
            EditText max = (EditText) findViewById(R.id.maxnum);
            EditText res = (EditText) findViewById(R.id.res);



            int myMin = Integer.parseInt(min.getText().toString());
            int myMax = Integer.parseInt(max.getText().toString());

            String minString = String.valueOf(myMin);
            String maxString = String.valueOf(myMax);

            int f = (int) ((Math.random()*(myMax-myMin+1))+myMin);

            if (minString.equals(""))
            {
                // Do Nothing
            }

            if (maxString.equals(""))
            {
                // Do Nothing
            }



                res.setText(String.valueOf(f));

没有任何错误,但是当我正在运行应用程序时,按下按钮时它会崩溃。

我也试图使用null而不是“”:

if (minString.equals(null))
{
    // Do Nothing
}

if (maxString.equals(null))
{
    // Do Nothing
}

我崩溃了。

请帮帮我!!!

5 个答案:

答案 0 :(得分:1)

       do if (maxString == null ) 
    {
        // do something 
      }

答案 1 :(得分:1)

public boolean equals (Object object)

将指定对象与此字符串进行比较,如果它们相等则返回true。该对象必须是具有相同顺序的相同字符的字符串实例。

所以它返回错误,所以如果你想检查它是否为null,那么在对象上使用==运算符。

if (maxString == null )

使用

        int myMin = 0;
        int myMax = 0;
        if(min.getText().toString()!="")
        myMin = Integer.parseInt(min.getText().toString());
        if(max.getText().toString()!="")
        myMax = Integer.parseInt(max.getText().toString());

        String minString = String.valueOf(myMin);
        String maxString = String.valueOf(myMax);

        int f = (int) ((Math.random()*(myMax-myMin+1))+myMin);

        if (minString.equals(""))
        {
            // Do Nothing
        }

        if (maxString.equals(""))
        {
            // Do Nothing
        }

答案 2 :(得分:0)

int变量不能为空

如果要将null转换为int,则转换器决定是设置0,抛出异常还是设置其他值(如Integer.MIN_VALUE)

因此,如果再次将int转换为字符串,则无法获取空值。

答案 3 :(得分:0)

  check = input.getText().toString();
 try {
    if (!check.equals("null")) {
        int max = Integer.parseInt(input.getText().toString());
        int constant1 = 1;
        int constant2 = 1;
        int nextNumber = 0;
        int count = 0;
        String fibResult = "";
        for (int i = 0; i <= max; i++) {
            fibResult += "F" + count + "=" + nextNumber + "\n";
            constant1 = constant2;
            constant2 = nextNumber;
            nextNumber = constant1 + constant2;
            count++;
        }
        dspResults.setText("\n" + fibResult);
    } else {
        dspResults.setVisibility(View.VISIBLE);
        dspResults.setText("Invalid");
        dspResults.setText(Gravity.CENTER);
        dspResults.setTextColor(Color.DKGRAY);
    }
} catch (IllegalArgumentException e) {
    e.printStackTrace();
}

答案 4 :(得分:0)

public void onClick(View v) {



            EditText min = (EditText) findViewById(R.id.EditText01);
            EditText max = (EditText) findViewById(R.id.maxnum);
            EditText res = (EditText) findViewById(R.id.res);



            int myMin = Integer.parseInt(min.getText().toString());
            int myMax = Integer.parseInt(max.getText().toString());

            String minString = String.valueOf(myMin);
            String maxString = String.valueOf(myMax);

            int f = (int) ((Math.random()*(myMax-myMin+1))+myMin);
           {

            if (minString.equals(""))
            {
                // Do Nothing
                 res.setText(String.valueOf(f));
                  return false;

            }

            else if (maxString.equals(""))
            {
                // Do Nothing
                res.setText(String.valueOf(f));
                return false;

            }

             else  
             res.setText(String.valueOf(f));

           return true ; 
       }