我是新手,用单例模式写了个DBhelper,添加了一个UPdata方法:
public long updata(User user) {
openDatabase();
ContentValues value = new ContentValues();
value.put("name", user.name);
value.put("cellphone", user.cellphone);
value.put("officephone", user.officephone);
value.put("familyphone", user.familyphone);
value.put("position", user.position);
value.put("company", user.company);
value.put("fax",user.fax);
value.put("zipcode", user.zipcode);
value.put("email", user.email);
value.put("othercontact", user.othercontact);
value.put("remark", user.remark);
return db.update(DB_Name, value, "_id=?", new String[]{String.valueOf(user._id)});
}
然后定义了监听
but_save.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if(flag){
flag=false;
modify();
but_save.setText("修改");
setEditTextDisable();
}else{
flag=true;
but_save.setText("保存");
setEditTextAble();
}
}
});
其中modify(); 为:
private void modify(){
user.name=et_name.getText().toString();
user.cellphone=et_cellphone.getText().toString();
user.officephone=et_officephone.getText().toString();
user.familyphone=et_familyphone.getText().toString();
user.position=et_position.getText().toString();
user.company=et_company.getText().toString();
user.fax=et_fax.getText().toString();
user.zipcode=et_zipcode.getText().toString();
user.email=et_email.getText().toString();
user.othercontact=et_othercontact.getText().toString();
user.remark=et_remark.getText().toString();
long success=DBHelper.getInstance(UserDetail.this).updata(user);
if(success!=-1){
Toast.makeText(UserDetail.this, "添加成功!", Toast.LENGTH_LONG).show();
setResult(1);
finish();
}else{
Toast.makeText(UserDetail.this, "添加失败!请检查SD卡", Toast.LENGTH_LONG).show();
setResult(2);
finish();
}
}
可是运行出错 :
java.long.NullPointerException
05-11 10:06:18.619: E/AndroidRuntime(1647): at com.example.nevermc.UserDetail.modify(UserDetail.java:211)
找了好久了,不知道错那了,是少ID么??应该怎么改正啊???
