编辑文本中没有填充整数时避免异常

时间:2012-12-27 05:16:59

标签: android android-edittext

我正在使用Android应用,我有5个编辑文本和1个按钮来对这些编辑文本中的整数进行求和。有时用户可以让几个编辑文本空白。问题是当用户将其留空时,会出现异常,我不知道如何处理它。这些是我的代码

try
    {
        if (qty1 != null)
        {
            int jml1 = Integer.parseInt(qty1.getText().toString());
            item1 = hrg1 * jml1;
        }
        else 
        {
            qty1.setText("0");
        }
        if (qty2 != null)
        {
            int jml2 = Integer.parseInt(qty2.getText().toString());
            item2 = hrg2 * jml2;
        }
        else 
        {
            qty2.setText("0");
        }
        if (qty3 != null)
        {
            int jml3 = Integer.parseInt(qty3.getText().toString());
            item3 = hrg3 * jml3;
        }
        else 
        {
            qty3.setText("0");
        }
        if (qty4 != null)
        {
            int jml4 = Integer.parseInt(qty4.getText().toString());
            item4 = hrg4 * jml4;
        }
        else 
        {
            qty4.setText("0");
        }
        if (qty5 != null)
        {
            int jml5 = Integer.parseInt(qty5.getText().toString());
            item5 = hrg5 * jml5;
        }
        else 
        {
            qty5.setText("0");
        }
int hasil = item1 + item2 + item3 + item4 + item5;
        Toast.makeText(getApplicationContext(), "Berhasil", Toast.LENGTH_LONG).show();
        total.setText(String.valueOf(hasil));
    }
    catch(Exception e)
    {
        Toast.makeText(getApplicationContext(), "Quantity can't be empty. Please type item quantity", Toast.LENGTH_LONG).show();
    }    

我试着把条件放在一边但是没有多大帮助。感谢。

3 个答案:

答案 0 :(得分:3)

试试这个,

if (qty1.getText().toString() != null && !(qty1.getText().toString().equals("")))
        {
            int jml1 = Integer.parseInt(qty1.getText().toString());
            item1 = hrg1 * jml1;
        }

代替,

if (qty1 != null)
        {
            int jml1 = Integer.parseInt(qty1.getText().toString());
            item1 = hrg1 * jml1;
        }

如果(qty1 != null)检查您的editText是否为null但是它不检查其中包含的数据,则会出现这种情况。

对所有其他editText值重复相同的操作。

答案 1 :(得分:1)

把这个条件

String s1= qty5.getText().toString().trim();

if(TextUtils.isEmpty(s1)) ///// isEmpty() <-----
{
 // error message
}
else
{
 // your code
}

答案 2 :(得分:0)

如果qty1是你的edittext,那么你需要从你的edittext中获取字符串以检查它是否为null

所以改变你的所有edittexts代码就像这样

    if (qty1.getText().toString() != null && qty1.getText().toString().equals(""))
    {
        int jml1 = Integer.parseInt(qty1.getText().toString());
        item1 = hrg1 * jml1;
    }
    else 
    {
        qty1.setText("0");
    }