在Android Studio中传递数据的问题

时间:2018-11-29 12:16:39

标签: android sqlite android-intent android-activity

我想将数据从一个活动传递到第二个活动。我有更新查询。这是恢复密码。我在第一个活动中写电子邮件和代码,然后转到第二个活动。我给他们写密码。但是,当我单击最后一个按钮时,我会进行第二次活动:

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();
}

1 个答案:

答案 0 :(得分:0)

您似乎没有在第二个活动中初始化mDatabaseHelperonCreate初始化电子邮件,而不初始化mDatabaseHelper变量。