Это код, который я использую
dbhelper mydb;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_profile);
final Intent profile = getIntent();
final String user = profile.getExtras().getString("tete");
final EditText username = (EditText) findViewById(R.id.Pusername);
final EditText password = (EditText) findViewById(R.id.Ppassword);
username.setText(user);
username.setInputType(InputType.TYPE_NULL); //Supaya username tidak dapat diganti
Button update = (Button) findViewById(R.id.btupdate);
update.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String newpassword = password.getText().toString();
String newusername = username.getText().toString();
if (password.getText().toString().trim().length() < 6) {
Toast.makeText(getApplicationContext(), "Password Baru Harus diisi minimal 6 karakter", Toast.LENGTH_SHORT).show();
} else {
mydb.editData(newusername, newpassword);
Toast.makeText(getApplicationContext(), "berhasil!", Toast.LENGTH_SHORT).show();
}
}
});
Это мой код для класса dbhelper
public void editData(String username,String password){
SQLiteDatabase db= this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(COL_1,username);
contentValues.put(COL_2,password);
db.update(TABLE_NAME,contentValues,"USERNAME = ?", new String[]{username});
//String query="UPDATE " + TABLE_NAME + " SET " + COL_2 + " = '" + password + "' Where " + COL_1 + " = '" + username + "'";
//db.execSQL(query);
}
Logcat выдал эту ошибку
java.lang.NullPointerException: попытка вызвать виртуальный метод void com.example.charlie.gate.dbhelper.editData (java.lang.String, java.lang.String) 'для ссылки на пустой объект
Я попытался добавить тост newusername и строку newpassword, чтобы проверить, было ли оно пустым, и оба результата содержали значение, как и предполагалось, но почему-то каждый раз, когда я нажимаю кнопку, которую приложение принудительно закрывает, пожалуйста, помогите