无法在Android Studio上的SQLite中更新或删除

时间:2018-12-06 20:08:40

标签: android-studio

这是我使用的代码

    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字符串以测试它们是否为null,并且结果均包含预期的值,但是无论如何,每当我单击应用程序强制关闭按钮时,请帮忙

1 个答案:

答案 0 :(得分:0)

您未正确初始化mydb,因此在尝试使用它时为null。
onCreate()内添加以下行:

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

通常您为此初始化传递this和其他参数。