我正在使用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();
}
我试着把条件放在一边但是没有多大帮助。感谢。
答案 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");
}