Не удается обновить или удалить в SQLite на Android Studio - PullRequest
0 голосов
/ 06 декабря 2018

Это код, который я использую

    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, чтобы проверить, было ли оно пустым, и оба результата содержали значение, как и предполагалось, но почему-то каждый раз, когда я нажимаю кнопку, которую приложение принудительно закрывает, пожалуйста, помогите

1 Ответ

0 голосов
/ 07 декабря 2018

Вы неправильно инициализируете mydb, поэтому при попытке его использования оно становится нулевым.Внутри onCreate() добавьте эту строку:

mydb = new dbhelper(this, ...);

обычно вы передаете this и другие параметры для этой инициализации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...