我想将数据从一个活动传递到第二个活动。我有更新查询。这是恢复密码。我在第一个活动中写电子邮件和代码,然后转到第二个活动。我给他们写密码。但是,当我单击最后一个按钮时,我会进行第二次活动:
java.lang.NullPointerException: Attempt to invoke virtual method 'void com.example.pawe.aplikacja.DatabaseHelper.updateUser(java.lang.String, java.lang.String)' on a null object reference
这是第一个活动。
public void recoverPassword(){
if (!emptyValidation()) {
User user = mDatabaseHelper.recoverUser(editTextSaveEmail.getText().toString(), editTextSavePin.getText().toString());
if (user != null) {
String em = editTextSaveEmail.getText().toString();
Intent intent = new Intent(Recover.this,ChangePassword.class);
intent.putExtra("email",em);
startActivity(intent);
Toast.makeText(Recover.this, "Poprawne dane", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(Recover.this, "Nie znaleziono", Toast.LENGTH_SHORT).show();
}
}else{
Toast.makeText(Recover.this, "Empty Fields", Toast.LENGTH_SHORT).show();
}
}
这是第二项活动。
private void updateData(){
if(!emptyValidation()){
if(!toSame()){
mDatabaseHelper.updateUser(email,editTextChangePassword.getText().toString());
Toast.makeText(ChangePassword.this,"Zmienione hasło", Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(ChangePassword.this, "Nie pasują do siebie", Toast.LENGTH_SHORT).show();
}
}else{
Toast.makeText(ChangePassword.this, "Empty Fields", Toast.LENGTH_SHORT).show();
}
}
在Oncreate中是:
email = getIntent().getStringExtra(email);
和数据库中的updateQuery。
public void updateUser(String email, String password){
db=this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(COLUMN_PASSWORD_USER, password);
values.put(COLUMN_EMAIL_USER, email);
String[] whereArgs = {email};
db.update(TBL_PER,values,COLUMN_EMAIL_USER + " = ?", whereArgs);
db.close();
}
答案 0 :(得分:0)
您似乎没有在第二个活动中初始化mDatabaseHelper
。 onCreate
初始化电子邮件,而不初始化mDatabaseHelper
变量。