从edittext e_1,e_2获取数据以总结这些内容,但很少将这些内容放在一起。例如,我在e_1中写了0,在e_2中写了1,pref KEY表示' 1'但是当我在e_1中没有写任何内容时,在e_2中没有写入1时,它会导致错误和失败。因此,尽管他/她在e_1中没有写任何内容,但它也必须将' 0'在一个。我要做什么?
a = Integer.parseInt(e_1.getText().toString());
b = Integer.parseInt(e_2.getText().toString());
SharedPreferences.Editor editor = pref_time.edit();
editor.putInt(KEY, a+b));
editor.commit();
答案 0 :(得分:1)
试一试
String editText1=e_1.getText().toString().trim();
String editText2=e_1.getText().toString().trim();
if((editText1!= null || !editText1.equals("")) && (editText2!=null || !editText2.equals("")))
{
a = Integer.parseInt(editTextData1);
b = Integer.parseInt(editTextData2);
SharedPreferences.Editor editor = pref_time.edit();
editor.putInt(KEY, a+b));
editor.commit();
}
答案 1 :(得分:0)
如果e_2
为空,请在此行中填写:
b = Integer.parseInt(e_2.getText().toString());
您将收到错误,因为e_2.getText().toString()
返回空字符串,并且无法将其解析为Integer
。
你必须首先检查它是否为空:
String aText = e_1.getText().toString();
String bText = e_2.getText().toString();
a = TextUtils.isEmpty(aText)? 0 : Integer.parseInt(aText);
b = TextUtils.isEmpty(bText)? 0 : Integer.parseInt(bText);
答案 2 :(得分:0)
当edittext为空时,它返回null到e_1.getText().toString()
,所以首先检查edittext是否为空,如下所示:
String editTextData1 = e_1.getText().toString().trim();
String editTextData2 = e_1.getText().toString().trim();
trim();
是为了避免空格,然后像这样检查以避免任何异常:
if(editTextData1!="" || editTextData2!=""){
a = Integer.parseInt(editTextData1);
b = Integer.parseInt(editTextData2);
SharedPreferences.Editor editor = pref_time.edit();
editor.putInt(KEY, a+b));
editor.commit();
}